Django:Per View身份验证方案

时间:2018-01-02 11:47:15

标签: django authentication django-rest-framework

django rest框架允许每个视图身份验证方案:

http://www.django-rest-framework.org/api-guide/authentication/#setting-the-authentication-scheme

我觉得这很方便,我问自己为什么会在django休息框架中重新发明。

“为什么django不提供这个?”是一个很快就会在stackoverflow上关闭的问题。

这就是我问的原因:

如何在django中获取每个视图的身份验证方案?

1 个答案:

答案 0 :(得分:3)

  

“为什么django不提供这个?”

这是一个意见。我不明白为什么有人应该限制某些身份验证后端的特定视图。无论我/您的意见是什么,决定都是在Django / DRF中做出的。联系他们的邮件列表并搜索他们的bug回购,以找出做出具体决定的原因。

  

如何在django中获取每个视图的身份验证方案?

在确定你知道Django如何工作之前。阅读所有与身份验证相关的文档,例如thisthis

你可以采用DRF的方式:完全放弃Django身份验证并自己编写。将Django身份验证后端摘要替换为您想要的摘要,并设置配置每个视图的方法(例如,使用装饰器在您的视图函数上设置属性或使用基于类的视图+某些字段)。然后添加一个中间件来验证用户并替换Django的AuthenticationMiddleware以提供request.user。您还应确保login_required之类的内容无需修改即可使用,或者您应提供替代方案。