Tim*_*Tim 2 python authentication django jwt django-rest-framework
我目前正在尝试在Django中实现"记住我"功能.
我正在使用SessionAuthenticationDjango REST框架和JSONWebTokenAuthenticationdjangorestframework-jwt.
但是,我不知道如何为这两种身份验证实现"记住我"的概念.就像我如何永久地扩展会话以及如何永久扩展令牌(我正在使用JWT auth用于移动和桌面 - 用于浏览器的Session auth).
此外,为这两种身份验证实现此功能的安全方法是什么?
这里有一些我应该提前明确的事情:身份验证如何工作以及到期时间SessionAuthentication和JSONWebTokenAuthentication.
SessionAuthenticationDjango REST框架提供的类实际上只是Django提供的会话框架的一小部分.因此,如果您可以使用他们的会话在Django中实现"记住我"功能,DRF也将继承它.
幸运的是,有人已经在Stack Overflow上问过这个问题:Django"记住我",内置登录视图和身份验证表单
基本上它归结为改变的SESSION_COOKIE_AGE设置(2周默认情况下),以一个非常高的数字.另外,请务必记住长期会话的含义,并且可能会在您访问的网站(通常为2周到6个月)内查看会话cookie的默认时间.
django-rest-framework-jwtJSONWebToken提供的身份验证类基于JSON Web令牌对请求进行身份验证.默认情况下,令牌将在五分钟后过期,但最多可刷新七天.
令牌到期时间由JWT_EXPIRATION_DELTA设置控制.建议不要将此时间扩展得太大,而是使用刷新令牌来生成长期令牌.您可以使用JWT_ALLOW_REFRESH设置启用刷新令牌,并使用设置控制到期时间JWT_REFRESH_EXPIRATION_DELTA.
| 归档时间: |
|
| 查看次数: |
5899 次 |
| 最近记录: |