2017-03-02 108 views
2

目前我正在为我的django REST API使用JWT身份验证。Django JWT和OAuth身份验证和授权

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

因此,我需要整合刷新令牌的OAuth 2.0和访问令牌的JWT令牌。

如何为我的REST框架集成JWT + OAuth 2.0。或任何样本?

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

回答

0

,我们已经走了这条路线是增加令牌到期时间(可以说36小时),然后在达到一定的阈值时,(如12小时在令牌过期之前),从服务器请求一个新的令牌。

为什么36和12?这里完全是假设的,但用户可能每1.5天访问一次网站,而刷新12小时的窗口让他们在我们的网站外生活(这听起来很疯狂,但那是另一回事)。选择似乎适合用户行为的小时数。尝试找到一个时间,用户可能会回到您的网站并在刷新窗口做出有教育的决定。当然,智威汤逊也有一个可刷新的时间限制,您可能会在某些申请中看到“未来30天签到我”,然后用户必须重新进行身份验证。

安全明智吗?在阅读了一堆来自SO的答案之后,看起来有更长的到期期限并不会让您的智威汤逊变得更加脆弱。如果您偏执,可以将旧的JWT列入黑名单(但仍有剩余时间),但在大多数情况下,HTTPS应该已足够。