Security 如何在客户端处理刷新和身份验证令牌?(存放地点)

Security 如何在客户端处理刷新和身份验证令牌?(存放地点),security,authentication,vue.js,jwt,single-page-application,Security,Authentication,Vue.js,Jwt,Single Page Application,我使用laravel作为后端,vue作为前端 当用户想要进行身份验证时,他调用my laravel api并获取身份验证令牌和刷新令牌。身份验证令牌仅在2分钟内有效,但刷新令牌的寿命很长。所以,如果我将刷新令牌保存在用户端的某个位置,他可以长时间保持登录状态,但我担心安全性,如果我将刷新令牌保存在本地存储中,它是易受攻击的。我可以将身份验证令牌保存在本地存储中,因为它的寿命很短,即使它被盗,我也不在乎,但我不知道如何处理刷新令牌 困难的部分是我不想让用户在每次打开应用程序时都输入他/她的凭据 所

我使用laravel作为后端,vue作为前端

当用户想要进行身份验证时,他调用my laravel api并获取身份验证令牌和刷新令牌。身份验证令牌仅在2分钟内有效,但刷新令牌的寿命很长。所以,如果我将刷新令牌保存在用户端的某个位置,他可以长时间保持登录状态,但我担心安全性,如果我将刷新令牌保存在本地存储中,它是易受攻击的。我可以将身份验证令牌保存在本地存储中,因为它的寿命很短,即使它被盗,我也不在乎,但我不知道如何处理刷新令牌

困难的部分是我不想让用户在每次打开应用程序时都输入他/她的凭据


所以问题是,我在哪里可以保存刷新令牌?在何处使用身份验证令牌?

只有当您存储的刷新令牌与访问令牌不同时,才有意义使用刷新令牌。如果存储相同,则只会增加复杂性,但两者将以相同的方式受到损害


不过,您可以将刷新令牌存储在httponly cookie中,如果cookie用于不同的域(idp),则效果更好,但在相同的域上也是有意义的。其思想是,即使访问令牌在xss之类的攻击中受损,刷新令牌仍然无法访问。

只有当存储的刷新令牌与访问令牌不同时,使用刷新令牌才有意义。如果存储相同,则只会增加复杂性,但两者将以相同的方式受到损害


不过,您可以将刷新令牌存储在httponly cookie中,如果cookie用于不同的域(idp),则效果更好,但在相同的域上也是有意义的。其思想是,即使访问令牌在xss等攻击中受损,刷新令牌仍然无法访问。

感谢您的回复,特别是第一句话。我正在努力寻找使用刷新令牌的理由,并认为我在这里遗漏了一些东西。感谢您的回复,尤其是第一句话。我一直在努力寻找使用刷新令牌的理由,并认为我遗漏了一些东西。