【问题标题】:Where to save the JWT Token in LaravelLaravel 中 JWT Token 的保存位置
【发布时间】:2015-12-06 07:23:07
【问题描述】:

我有一个场景,我有一个基于 laravel 并由 JWT 控制的 rest api。然后我使用另一个路由来请求令牌的 api。但是,一旦我在提供登录凭据后收到令牌,我应该将令牌保存在哪里?

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

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

【问题讨论】:

    标签: rest laravel cookies jwt


    【解决方案1】:

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

    还值得指出的是,如果你使用Laravel JWT Auth 包,默认情况下令牌仍然存储在服务器上(使用 Laravel 的缓存系统),因此不会跨服务器扩展。您应该可以使用 storage 配置选项更改此设置。

    【讨论】:

    • 感谢您的回答,使用 cookie 确实是我要做的。您是否知道任何教程或代码实际上展示了如何正确地从 php 而不是 js 框架发出请求
    • 这没有多大意义。大概您正在使用 JWT 对 js Web 应用程序进行无状态身份验证?如果是这种情况,您显然必须使用 js 应用程序请求和存储令牌。你用的是什么js框架?
    • 好吧,关键是我不想使用 js 框架,我现在正在研究 guzzle,它是一个 http 客户端,因此它可以选择随每个请求发送标头和 cookie。跨度>
    • 如果您的应用程序是常规的服务器端 Laravel 应用程序,那么为什么要使用 JWT?你可以使用开箱即用的 Laravel 身份验证。
    • 其实我想让它可扩展,开箱即用 laravel auth 存储带有会话的数据,并且会话保存在服务器上。
    猜你喜欢
    • 2020-05-11
    • 2015-12-13
    • 1970-01-01
    • 2020-05-07
    • 2019-07-18
    • 2020-07-30
    • 2015-11-16
    • 2019-11-20
    • 2017-04-03
    相关资源
    最近更新 更多