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

时间:2018-12-23 17:12:12

标签: security authentication vue.js jwt single-page-application

我在后端使用laravel,在前端使用vue。

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

困难的是,我不想让用户每次打开应用程序时都输入其凭据。

问题是,我可以在哪里保存刷新令牌?以及身份验证令牌在哪里?

1 个答案:

答案 0 :(得分:2)

仅当存储刷新令牌与访问令牌不同时,才使用刷新令牌。如果将其存储在同一位置,只会增加复杂性,但两者都会以相同的方式受到损害。

尽管您可以将刷新令牌存储在httponly cookie中,如果cookie用于其他域(idp)则更好,但是在同一个域中也是有意义的。这样的想法是,即使访问令牌在xss之类的攻击中受到损害,刷新令牌仍然不可访问。