【发布时间】:2021-09-26 03:05:18
【问题描述】:
Laravel sanctum 让我有点头疼,因为我花了几个小时试图弄清楚为什么 sanctum/csrf-cookie 路由没有返回任何内容。最初相同的路由返回 404 未找到,但在添加 'prefix' => 'api/sanctum' config/sanctum.php 后,它似乎可以工作,只是它什么都不输出并且我的浏览器中没有设置 cookie。
这是我的一些代码
.env
SANCTUM_STATEFUL_DOMAINS=localhost:8080
SPA_URL=http://localhost:8080
SESSION_DOMAIN=localhost
--config/cors.php
'paths' => [
'api/*',
'login',
'logout',
'register',
'user/password',
'forgot-password',
'reset-password',
'sanctum/csrf-cookie',
'user/profile-information',
'email/verification-notification',
],
'allowed_methods' => ['*'],
'allowed_origins' => ['*'],
'allowed_origins_patterns' => [],
'allowed_headers' => ['*'],
'exposed_headers' => [],
'max_age' => 0,
'supports_credentials' => true,
axios
export const authClient = axios.create({
baseURL: process.env.VUE_APP_API_URL,
withCredentials: true, // required to handle the CSRF token
});
如果我尝试使用
生成令牌,那么所有这些都已完成axios.get('/sanctum/csrf-cookie').then(response => {
// Login...
});
我收到204 no content 回复
我还按照doucmentation 中的说明在 kernel.php 中添加了 api 中间件,但仍然不会设置 cookie。当我尝试向受圣所保护的另一条路线提出请求时,我 419 token mismatch。
我还运行了全新安装的 laravel php artisan optimize,清除了我的浏览器历史记录,检查了邮递员中的端点,但仍然相同 204 and 419 异常
【问题讨论】:
标签: laravel vue.js cookies laravel-sanctum laravel-api