Django JWT和OAuth身份验证与授权

9
2个回答

0
我们采取的方法是增加令牌过期时间(比如36小时),然后当达到一定阈值时(比如令牌过期前12小时),从服务器请求一个新的令牌。
为什么是36和12?这完全是假设,但用户可能每1.5天访问一次网站,刷新的12小时窗口留给他们在我们网站之外有生活的时间(听起来很疯狂,但那是另一个故事)。选择看似符合用户行为的时间。尽量找到用户可能回到您的网站并对刷新窗口做出明智决策的时间。当然,JWT也有可刷新的时间限制,在某些应用程序中,您可能已经看到了“在接下来的30天内登录”,之后用户必须重新验证身份。
安全方面呢?在阅读了SO上的一堆答案之后,似乎更长的到期时间并不会使您的JWT更容易受到攻击。如果您很偏执,可以将旧的JWT列入黑名单(但仍具有剩余时间),但使用HTTPS应该足以满足大多数情况。

0
这是我的建议:
  • 您只需要使用JWT(无需使用OAuth 2.0进行刷新令牌)。
  • 如果您想在5分钟后刷新令牌,您应该稍微定制一下您的应用程序。

步骤1:您需要添加一个名为BlackList的表(此表将存储所有在5分钟后过期的令牌),

步骤2:编写一个脚本来设置任何在5分钟后过期的令牌的过期时间,并将该令牌放入BlackList表中。

步骤3:然后您需要覆盖身份验证方法,首先检查表BlackList中的令牌;创建一个新的或拒绝权限...然后


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接