Django rest framework 身份和权限验证

Django rest framework 身份和权限验证,第1张

认证成功提供以下信息

request.user 将是一个 Django User 实例。

request.auth 将是 None

a. 设置在 setting.py 的 INSTALLED_APPS 中添加 rest_framework.authtoken

b. 执行 manage.py migrate 生成 token 相关的表

如何生效请看 三

a. 修改 .authenticate(self, request) 方法完成自定义验证

该方法返回 (user, auth) 元组或 None

b. 修改 .authenticate_header(self, request)

如果实现该方法,则应返回一个字符串,该字符串将用作 HTTP 401 Unauthorize 响应中的 WWW-Authenticate 头的值

如果 .authenticate_header() 方法未被重写,则认证方案将在未验证的请求被拒绝访问时返回 HTTP 403 Forbidden 响应

示例

a. 重写 .has_permission(self, request, view)

b. 重写 .has_object_permission(self, request, view, obj)

区别:

has_permission 在请求进来的时候就开始了属于DRF的三大认证,返回 True 就能访问, False 就禁止访问

has_object_permissions 是对某个对象的访问权限,

如果请求被授予访问权限,方法应该返回True,否则返回False。

: 仅当视图级 has_permission 检查已通过时,才会调用实例级 has_object_permission 方法

两种解决方式:

修改httpd.conf文件,中里面添加声明,开放django所在目录位置的访问权限;

将django部署到apache的hotdocs目录中;


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11560221.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存