基于Django令牌的身份验证

时间:2015-10-23 14:46:50

标签: django authentication django-rest-framework

我正在编写单页应用程序(SPA),并希望使用Django作为后端。我读了this postthis,我确信我需要使用基于令牌的身份验证而不是基于会话的身份验证。

所以这就是我想要完成的事情:

  1. 用户输入用户名&密码,我的应用程序通过ajax将这些发送到Django进行验证
  2. 假设用户名&密码有效,Django向SPA返回访问令牌
  3. SPA可以开始使用此令牌来请求REST apis
  4. 我发现Django OAuth工具包和this page似乎显示了如何完成我刚才提到的内容。

    由于我是OAuth2和基于令牌的身份验证的新手,我不确定我的断言是否正确。 (我没有得到关于注册你的申请的部分)

    我希望有更多经验的人可以帮助我。谢谢!

    P.S。如果我不需要令牌轮换,我想我可以使用TokenAuthentication provided by DRF权利吗?

2 个答案:

答案 0 :(得分:0)

  

P.S。如果我不需要令牌轮换,我想我可以使用DRF提供的> TokenAuthentication吗?

是的,您应该只能将TokenAuthentication与DRF一起使用(只要所有内容都通过HTTPS提供)。我还建议调查Django rest auth以加快用户流程。

答案 1 :(得分:0)

您提到的三个步骤可以通过DRF TokenAuthentication轻松实现。为了使用它,您必须按照此处所述设置基本身份验证:https://www.django-rest-framework.org/api-guide/authentication/#tokenauthentication

对于OAuth工具包here,必须注册一个应用程序才能将所有其他请求的令牌与之关联。可以为用户分配受限的访问权限,以访问与该应用程序关联的请求。令牌具有到期时间轴,一旦过期,就必须使用刷新令牌或再次发送用户名,密码来生成新令牌。