Django JWT和OAuth身份验证和授权

Kar*_*h A 5 django oauth-2.0 jwt django-rest-framework

目前我正在为我的django REST API使用JWT身份验证.

但是从JWT库中我无法在到期后刷新令牌.(5分钟) https://github.com/GetBlimp/django-rest-framework-jwt

所以我需要为刷新令牌和访问令牌的JWT令牌集成OAuth 2.0.

如何为我的REST Framework集成JWT + OAuth 2.0.还是样品?

EX:https: //github.com/GetBlimp/django-rest-framework-jwt plus https://django-oauth-toolkit.readthedocs.io/en/latest/#

小智 0

我们采用的方法是增加令牌过期时间(假设为 36 小时),然后当达到某个阈值(例如令牌过期前 12 小时)时,从服务器请求新令牌。

为什么是 36 和 12?这里完全是假设的,但用户可能每 1.5 天访问一次网站,并且 12 小时的刷新窗口为他们留下了在我们网站之外的生活的时间(这对我来说听起来很疯狂,但那是另一个故事)。选择适合用户行为的时间。尝试找到用户可能返回您的网站的时间,并在刷新窗口上做出明智的决定。当然,JWT 也有可刷新的时间限制,您可能在某些应用程序中看到过“在接下来的 30 天内登录”,之后用户必须重新进行身份验证。

安全方面?在阅读了 SO 的一堆答案后,似乎更长的有效期并不会让你的 JWT 更容易受到攻击。如果您偏执,可以将旧的 JWT(但仍有剩余时间)列入黑名单,但在大多数情况下,通过 HTTPS 应该足够了。