我正在使用Django Simple JWT实现用户身份验证,我做了很少的调整,因此访问令牌和刷新令牌作为仅限http的cookie发送,一切都运行良好
在前端,我已经实现了持久登录,将保持用户登录时,他们刷新页面或关闭浏览器等.
但由于我已经启用了这些设置:
"ROTATE_REFRESH_TOKENS": True,
"BLACKLIST_AFTER_ROTATION": True,
如果用户在很短的时间内多次刷新页面,则可能会发生令牌在用户收到新的刷新令牌之前被列入黑名单的情况
有什么办法可以解决这个问题吗? 我还不确定其可靠性的一种可能的解决方法是禁用自动黑名单,并等待前端在接收到新的刷新令牌时发送请求,请求的主体中包含旧的刷新令牌,如下所示
@api_view(['POST'])
def blacklist_token(request):
refreshToken = request.data.get("refresh")
print(refreshToken)
if refreshToken:
token = tokens.RefreshToken(refreshToken)
token.blacklist()
return Response(status=status.HTTP_200_OK)
PS:在前端使用React.js