使用 VueX 和 Laravel Passport 进行身份验证

Posted

技术标签:

【中文标题】使用 VueX 和 Laravel Passport 进行身份验证【英文标题】:Authentication with VueX and Laravel Passport 【发布时间】:2019-12-20 14:08:23 【问题描述】:

我目前正在使用 Vue(和 VueX)和 Laravel Passport。我的注册页面工作正常,现在我已经进入我的登录页面。我在网上看到的所有教程和帖子都显示了一个登录系统,其中生成的令牌存储在 localStorage 中,但我也看到每个人都说我们不应该在 localStorage 中存储任何敏感数据,那我该怎么做呢?如果我的前端 (VueX) 与我的后端 (laravel) 分离,我该如何管理会话?

【问题讨论】:

【参考方案1】:

将令牌存储在localStorage 中就可以了,您只需将令牌的有效期设置为更短的时间,比如2天。

这些行应该添加到AuthServiceProvider.php

Passport::tokensExpireIn(now()->addDays(2));
Passport::refreshTokensExpireIn(now()->addDays(30));

【讨论】:

localStorage 有替代品吗?我猜如果 1 周不安全,那么 1 或 2 天也不安全 您可以使用 cookie,但这也不能保证安全。访问这些令牌的常见攻击是 XSS,如果您的所有表单都具有适当的验证/过滤,则可以防止它。 令牌在本地存储中很好,那些说他们不是在谈论长达一年的令牌的人,具有 exp 的访问令牌很好,只是不要存储我以前实际见过的用户名和密码。 ...永远

以上是关于使用 VueX 和 Laravel Passport 进行身份验证的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 5.4建站06--API 认证系统 Passport

TypeError:无法读取未定义 Passpor 错误的属性“名称”

Laravel 5.7 在播种机中使用 Passport 进行测试

如何将 Vuex 添加到我的 Laravel Nova 工具中?

Vuex+Laravel:无法将带有 FormData 和 axios 的多个文件发送到服务器端。在服务器端始终为空。这是怎么回事?

Laravel Sanctum/Vuex 未捕获错误 Vue Router Navigation Guard