首页 > 解决方案 > 如何根据域中实时 API 的响应在 localhost 上设置 XSRF-TOKEN cookie

问题描述

我的本地主机上有一个内置于 Vue JS 的 SPA。我正在将 SPA 与 URL https://api.someweburl.com上的实时 api 集成。该 API 使用 Laravel 作为框架,使用 Sanctum 进行 CSRF/XSRF 验证。我无法直接访问 API 的源代码。

当我向端点发送 GET 请求时,/sanctum/csrf-cookie我得到了XSRF-TOKENcookie 作为响应。但是 cookie 在 localhost 上不可访问/可读,并且未在后续 POST 请求的标头中附加为X-XSRF-TOKEN. 在此处输入图像描述

我的 axios.js 看起来像这样

import Vue from 'vue';
import axios from 'axios';

axios.defaults.withCredentials = true;

const apiBaseUrl = "https://api.someweburl.com";
const api = axios.create({ baseURL: apiBaseUrl });

Vue.prototype.$axios = axios;
Vue.prototype.$api = api;

export { axios, api }

谁能帮助我了解如何在后续 POST 请求中读取或附加 XSRF 令牌?

任何帮助将不胜感激。

标签: javascriptlaravelvue.jsvuejs2axios

解决方案


推荐阅读