我正在使用 Laravel Sanctum 和 Vuejs SPA。两者都驻留在同一顶级域中。
Laravel backend : app.demo.localhost
Vue SPA : app-spa.demo.localhost
从VueJS SPA使用axios调用登录和注销(endpoints)时,成功设置了XSRF-TOKEN,并且工作正常。但是当我调用其他api endpoints时,它会返回401未经授权的错误。
在axios中进行了如下设置
axios.defaults.withCredentials = true;
我有以下配置
在 Laravel .env 文件中
SESSION_DRIVER=cookie
SESSION_DOMAIN=.demo.localhost
SANCTUM_STATEFUL_DOMAINS=app-spa.demo.localhost
在Routes/Api.php中。Route::middleware('auth:sanctum')->get('api/user', function (Request $request) {
return $request->user();
});
在 cors.php 中
'paths' => ['api/*', 'sanctum/csrf-cookie', 'login', 'logout'],
'allowed_methods' => ['*'],
'allowed_origins' => ['*'],
'allowed_origins_patterns' => [],
'allowed_headers' => ['*'],
'exposed_headers' => [],
'max_age' => 0,
'supports_credentials' => true,
有人可以帮我吗?
app/Http/Kernel.php
中启用了 Sanctum 中间件呢? https://laravel.com/docs/7.x/sanctum#spa-authentication - Dylan Hobbs