我正在构建一个应用程序,使用Laravel后端和Vue3。这两个应用都在不同的域上。我正在从Vue调用axios API。在Laravel上,我安装了Sanctum来处理我的授权,登录等。我尝试了很多东西,从存储令牌到localStorage (这不是一个好的做法,因为它不安全)。所以我阅读了更多,发现我只需要发送- withCredentials: true,它将通过cookie处理所有开箱即用的东西。它不起作用。然后我读到,如果它们在不同的域上,它就不起作用。我不知道该怎么处理这件事了。
这些都是真的吗?圣殿是可行的吗?如果不是,最好的安全认证方式是什么?它会在相同的域上工作吗?有没有一种方法可以在不同的域上工作?
有谁知道怎么处理这件事吗?
谢谢!
发布于 2021-11-07 20:23:59
拥有2个域并不会改变任何事情。逻辑非常简单。基本上,您有一个令牌(密钥),您将使用此密钥进行通信。当满足条件时,您将向客户端发送令牌。然后,客户说:“如果这是你的令牌,给我的凭证。”
只需使用圣殿令牌:
$user->createToken($request->name)->plainTextToken;如果满足以下条件,则返回不记名token:
Authorization: Bearer <token>并使用圣殿中间件保护您的路线:
Route::middleware('auth:sanctum')->get('/user', function (Request $request)最后,如果密钥是正确的:
return response($user, 200);https://stackoverflow.com/questions/69875989
复制相似问题