Bil*_*one 15 authentication django restful-authentication django-rest-framework
为什么Django REST Framework实现了与内置Django机制不同的身份验证机制?
也就是说,可以配置两个设置类:
settings.AUTHENTICATION_BACKENDS 它处理Django级别的身份验证,以及settings.REST_FRAMEWORK['DEFAULT_AUTHENTICATION_CLASSES'] 在REST-Framework级别进行身份验证我遇到的问题是我有一个中间件层来检查用户是否登录.
使用通过会话进行身份验证的Web客户端时,这很好用.但是,从移动设备或运行测试套件(即使用HTTP标头和令牌进行身份验证)时,中间件会将用户检测为AnonymousUser,但是当我们到达REST Framework层时,Authorization会读取HTTP 标头,并且用户是登录.
为什么这些都不会在中间件之前发生?此外,为什么REST Framework的身份验证方法不依赖于Django身份验证后端?
Django Rest Framework默认情况下不会在中间件中执行身份验证,原因与Django默认情况下不在中间件中执行身份验证的原因相同:中间件适用于所有视图,如果您只想验证对一小部分视图的访问权限,那就太过分了.此外,能够为不同的API端点提供不同的身份验证方法是一个非常方便的功能.
Rest Framework的身份验证方法不依赖于Django身份验证后端,因为Django的后端针对常见情况进行了优化,并且与用户模型紧密相关.Rest Framework旨在让以下内容变得简单:
| 归档时间: |
|
| 查看次数: |
3655 次 |
| 最近记录: |