【发布时间】:2015-12-07 02:05:58
【问题描述】:
我对 Django 很陌生,但我想学习如何使用 Angularjs 实现 DRF 令牌身份验证。我发现的一些教程在展示如何设置它以及它们的源代码等方面并没有太大帮助......
另外,出于生产目的,使用第三方包是否更实用?或者设置我自己的(这是针对个人项目,所以时间贡献不是问题)。
我的令牌验证代码:Github
【问题讨论】:
-
你想用 AngularJS 进行令牌认证吗?这个应用程序会部署在具有安全令牌存储的手机上吗?如果没有,为什么不使用会话、用户名/密码认证和 CSRF 保护?如果您是 Web 应用程序开发的新手,我相信令牌身份验证不是与用户交互时通常采用的路径。使用 DRF 进行令牌身份验证更多地用于移动应用程序或与 DRF 对话的非用户和非浏览器。
-
我首先研究了这个,但有人向我提到,由于 REST api 的“无状态”性质,我应该使用令牌。对吗(如果有意义的话?)
-
令牌就像一整套用来冒充一个人的钥匙。没有用户名。没有密码。令牌允许您像人一样行事,直到管理员(或您必须编写的某些进程/API)进入令牌表并撤销或删除令牌。因此,您必须用生命保护该令牌,如果有人窃取该令牌,他们可以冒充您的用户。
-
同时,django 会话的默认超时时间为2 weeks。存储在您网站 cookie 中的会话 ID 受到浏览器的保护,免受外部恶意网站XSS 的驱动。如果他们最终通过对机器的物理访问、浏览器漏洞或man in the middle attack 获取会话 ID,则它的有效期为 2 周,而不是无限期或当您最终抓住入侵者时。如果您正在做一个网站,那么会议是您的最佳选择。
标签: angularjs django django-rest-framework