在 Laravel 中保存 JWT 令牌的位置

Where to save the JWT Token in Laravel

好吧,我有一个场景,我有一个休息 api 建立在 laravel 上并由 JWT 控制。然后我使用另一条路线请求令牌的 api 。但是一旦我在提供登录凭据后收到令牌,我应该将令牌保存在哪里?

我认为它应该保存在客户端的浏览器中,所以在下一个请求中我们只需从浏览器中获取令牌,然后再进行另一个请求。将令牌保存在浏览器中也有利于扩展服务器,因为如果它在服务器的会话中,并非所有服务器都将与该会话数据同步。

现在我想听听您的意见,我应该将令牌存储在 cookie 中还是浏览器的 LocalStorage 中?我知道如何将它存储在 cookie 中,但不知道如何使用 js 将其存储在本地存储中。如果您能为此指出任何教程,将会很有帮助。

有一篇关于本地存储与 JWT cookie 的好文章here。他们推荐使用 cookie,因为在使用本地存储时存在 XSS 漏洞。

还需要指出的是,如果您使用的是 Laravel JWT Auth package, that the token is still being stored on the server (using Laravel's cache system) by default, and so will not scale across servers. You should be able to change this with the storage 配置选项。