安全存放刷新令牌的位置

时间:2020-05-20 12:55:46

标签: reactjs jwt

我应该在哪里保存刷新令牌, 我将其保存在数据库中,但是当我发送过期的JWT时,因此当我尝试有效时,无法获得保存在此处的有效负载。 使用atob JWT进行解码是否安全,所以我获取了有效负载并获取了用户名,并在db中找到了保存刷新令牌。 因为如果我将其保存在本地存储中是不安全的,则导致我们将一个长寿命令牌保存在那里,而不是仅将JWT(短寿命令牌)保存在那里

我尝试将其保存为cookie,但是即使我添加了httponly和安全的一个,CSRF攻击也是一个问题 如果我错了请纠正我

编辑: 我也想问我如何静音登录, 就像我将setInterval设置为14m一样,以便即使用户什么都不做也能获得新令牌吗?

1 个答案:

答案 0 :(得分:1)

您可以在内存或cookie之间进行选择。如果可以使用cookie,那么最好的选择就是cookie! CSRF攻击不会成功,如果将其存储在cookie中,则另一个站点将无权访问另一个站点的cookie。而且,您也可以从XSRF攻击中访问,因为您必须将refrash令牌发送到资源服务器,它仅用于身份验证服务器。