【问题标题】:Laravel sanctum with Vue 3 API calls带有 Vue 3 API 调用的 Laravel sanctum
【发布时间】:2021-12-20 20:25:52
【问题描述】:

我正在使用 Laravel 后端和 Vue3 构建一个应用程序。这两个应用程序位于不同的域中。我正在从 Vue 进行 axios API 调用。在 Laravel 上,我安装了 Sanctum 来处理我的授权、登录等......我尝试了很多东西,从存储令牌到 localStorage(不是一个好习惯,因为它不安全)。所以我读了更多,发现我只需要发送 - withCredentials: true 它会用 cookie 处理所有事情,开箱即用。这是行不通的。然后我读到如果它们在不同的域上,它就不起作用。我不知道如何处理这个了。

这一切都是真的吗? sanctum 有路要走吗?如果没有,安全身份验证的最佳方式是什么?它可以在相同的域上工作吗?有没有办法在不同的域上工作?

有谁知道如何处理这个问题?

谢谢!!!

【问题讨论】:

标签: laravel vue.js axios laravel-sanctum


【解决方案1】:

拥有 2 个域不会改变任何事情。逻辑很简单。基本上你有一个令牌(密钥),你将与这个密钥进行通信。满足条件时,您将向客户端发送令牌。之后,客户说“如果这是您的令牌,请提供我的凭据。”

只需使用圣所令牌:

  $user->createToken($request->name)->plainTextToken;

如果满足条件,则返回 Bearer 令牌:

Authorization: Bearer <token>

并使用 sanctum 中间件保护您的路线:

Route::middleware('auth:sanctum')->get('/user', function (Request $request)

最后如果密钥正确:

return response($user, 200);

【讨论】:

  • 嗨,谢谢,但这不是我的问题。我现在使用 vue.config.js 制作了代理。但我的问题是 Sanctum 没有根据我的请求返回 cookie,只是我不需要使用的令牌。
猜你喜欢
  • 2021-09-11
  • 1970-01-01
  • 2022-10-30
  • 2020-07-19
  • 2021-09-11
  • 2022-07-11
  • 2022-07-24
  • 2020-12-14
  • 2020-10-25
相关资源
最近更新 更多