【发布时间】:2020-08-20 16:36:32
【问题描述】:
我正在使用 Vue 开发一个新的前端来访问我现有的 Laravel 7 应用程序,该应用程序使用 Sanctum 进行身份验证。
前端位于 app.example.com,后端移至 api.example.com。 CORS 中间件和 Sanctum 已正确配置为允许 app.example.com,到目前为止一切顺利。
/sanctum/csrf-cookie 的 GET 看起来不错,但是,它似乎并没有真正设置 cookie,导致随后对 API 的请求返回 419。
const config = { withCredentials: true };
const api = process.env.NODE_ENV === 'production' ? 'https://api.example.com' : 'http://localhost:9000';
axios.get(api + '/sanctum/csrf-cookie', config)
.then(() => axios.post(api + '/login', data, config))
.then(response => response.json())
.then(response => { console.log('json', response); });
来自 /sanctum/csrf-cookie 的响应标头:
更新 1:之前没有注意到这一点;响应标头中每个 Set-Cookie 旁边的警告图标显示“此 set-cookie 的域属性对于当前主机 url 无效。”
【问题讨论】:
标签: vue.js cookies axios csrf-token laravel-sanctum