auth: 登录的用户能访问哪些资源,API
authen: 对登录中的用户身份进行认证
认证机制依赖于django.contrib.auth
Django会按上面的列表顺序逐个尝试,并使用第一个成功通过的认证
Basic: 密码认证。不建议用于Producrion。前端要用户输入密码后,会在header里加一个authorizaion field, 内容是一个bas64 加密的hash value 但是base 64可以被解密。所以不安全。
使用Basic认证的话,如果通过了。会把下面的self.request.user设置成 contrib.auth.models.User
self.request.auth 设置为none
如何认证失败。会在response的header里多一个 WWW-authenticate的field 这个就是个规律。方便你debug
Session认证:
如果是post,put, 需要提供CSRF token。
认证通过的话,如果通过了。会把下面的self.request.user设置成 contrib.auth.models.User
self.request.auth 设置为none。
认证失败的话会响应403 forbidden,但是response的header里不会多额外信息
认证authentication: 对用户登录的身份进行校验.
权限permisson: 对登录验证通过的用户能访问的api和对api能取得的对应级别数据.