在刷新令牌阶段,我的Django REST应用程序和JWT身份验证模块(https://getblimp.github.io/django-rest-framework-jwt)有问题。
刷新令牌的默认逻辑是:“可以将未过期的令牌“刷新”以获得具有更新的过期时间的全新令牌”。到期时间设置为BE。
JWT框架提供了用于刷新令牌的API,您应该使用该API来获取新令牌,因此到期时间会重置Web应用程序上的每个“用户操作”。 这意味着从我的Angular6 SPA进行的每次BE调用都必须重置令牌的到期时间。
我想了三种方法:
1)每次从FE调用BE都必须回调api以刷新令牌。这意味着呼叫数始终重复。 不优雅!
2)调用api以根据算法(在FE中)刷新令牌,以避免重复调用。 哪个算法?
3)将令牌的过期时间重置为来自FE的每个调用的后端,并使用来自FE的相同令牌。 我不能这样做!
有什么建议吗?
谢谢
答案 0 :(得分:1)
您不需要在每次api调用时刷新令牌。到期前只有几分钟。大多数令牌包含到期时间。因此,您需要在它几乎到期时刷新它。像这样的东西:token.expiration - curenttime =< 5 minutes
。
我相信有些图书馆可以为您做到这一点。也许Auth0