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目录中;
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)