Django Rest JWT身份验证-刷新令牌

时间:2018-09-24 10:56:32

标签: django angular algorithm authentication jwt

在刷新令牌阶段,我的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的相同令牌。 我不能这样做!

有什么建议吗?

谢谢

1 个答案:

答案 0 :(得分:1)

您不需要在每次api调用时刷新令牌。到期前只有几分钟。大多数令牌包含到期时间。因此,您需要在它几乎到期时刷新它。像这样的东西:token.expiration - curenttime =< 5 minutes

我相信有些图书馆可以为您做到这一点。也许Auth0