4 django token jwt django-rest-framework django-rest-framework-jwt
我正在使用django rest框架JWT库
http://getblimp.github.io/django-rest-framework-jwt/
JWT令牌过期有两种设置
JWT_EXPIRATION_DELTA 这是几秒钟
关于它的文档:
您可以通过将JWT_VERIFY_EXPIRATION设置为False来关闭到期时间验证.如果没有过期验证,JWT将永远存在,意味着攻击者可以无限期地使用泄露的令牌.这是Python的datetime.timedelta的一个实例.这将添加到datetime.utcnow()以设置到期时间.
默认值为datetime.timedelta(秒= 300)(5分钟).
和 JWT_REFRESH_EXPIRATION_DELTA
文档:
mit on token refresh,是一个datetime.timedelta实例.这是在原始令牌之后可以刷新未来令牌的时间.
默认值为datetime.timedelta(days = 7)(7天).
我不确定不同的用例.我将jwt令牌到期增量设置为20秒.
然后得到一个令牌保存到本地等待20秒关闭我的浏览器窗口并重新导航到该网站
期望不登录,因为令牌将过期,但我已登录.
那么JWT令牌到期增量之间有什么区别呢?
和JWT刷新过期达美?
小智 7
JWT_EXPIRATION_DELTA是你的JWT令牌工作的实际时间.在提及时间后JWT_EXPIRATION_DELTA,无论何时使用此令牌访问安全端点(启用了JWT Auth),它都会返回错误消息Your JWT Token has been expired.因此,您需要在过期之前保持刷新JWT令牌.根据文件:
可以重复使用令牌刷新(令牌1 - >令牌2 - >令牌3),但此令牌链存储原始令牌(使用用户名/密码凭据获得)的时间,如orig_iat.您只能将刷新令牌保留至JWT_REFRESH_EXPIRATION_DELTA
这意味着无论您刷新令牌多少次,它都会始终记录您生成第一个令牌时的原始时间(首次登录您的用户).因此,如果JWT_REFRESH_EXPIRATION_DELTA设置为1天,则在生成原始令牌后1天内无法继续刷新JWT令牌(表示您的第一个令牌生成时间).
如果用户是否经过身份验证,请不要知道您在前端检查的机制.但是如果你在后端检查它(DRF-JWT提供了一些现成的端点来验证和刷新令牌),你会发现它不起作用.
| 归档时间: |
|
| 查看次数: |
1954 次 |
| 最近记录: |