防止多次创建刷新令牌

时间:2020-06-23 03:50:20

标签: authentication jwt token jwt-auth

我正在尝试防止多次创建刷新令牌。

我有一个登录端点http://localhost:8000/api/login

当用户使用用户名和密码向该端点发送POST请求时,后端将生成access_tokenrefresh_token并在响应中返回。然后刷新令牌将保存到数据库中。

问题是用户可能会尝试多次发送POST请求,这最终将导致多个刷新令牌被存储在单个设备的数据库中。如果以后我想撤销特定设备的令牌,现在单个用户有多个刷新令牌,这可能会引起问题。

1 个答案:

答案 0 :(得分:0)

我不确定是否正确理解了这个问题,但这不是客户的工作要防止吗?假设您的客户是一个移动应用程序,只要用户登录,他就不再应该看到登录选项,除非他手动注销或令牌过期,对吗? 如果您是说用户使用Postman之类的东西来发布来自同一设备或浏览器的登录请求(我怀疑普通用户会尝试过这种登录),那么在这种情况下,我认为您根本不在乎。只要用户提供有效的凭据(用户名和密码),您就将发回新的令牌对。如果用户(从所有设备)进行全局注销,则无论如何您将使所有刷新令牌无效,并且,如果用户从一台特定设备注销,则您将仅删除该令牌(是为该设备创建的其他令牌)还在那里,但它们最终会过期)。