我有一个 .net Core 2 Web api,它为 vue 提供服务.js它将从一个子域提供服务。
我目前有 vue.js 客户端站点接受来自 ASP.Net Core Identity Web API 的身份验证 cookie。我刚刚将客户端应用程序从 .net 核心应用程序中迁移出来,以便从节点实例提供它。
我正在本地调试,两者都在具有不同端口的本地主机上运行。
我想知道是否有可能让 .net 核心身份通过指定身份应服务的域/主机向 vue.js 站点提供身份验证 cookie。
最终,客户端和服务器应用将来自同一域但不同的子域。
将 vue http 客户端设置为使用凭据。例如,对于 axios,您将覆盖默认值"withCredentials":
axios.defaults.withCredentials = true;
我通过添加 withCredentials:true 在我的 axios 实例上
解决了const service = axios.create({
baseURL: process.env.VUE_APP_BASE_API_URL,
timeout: 60000,
withCredentials: true, <=========== ADDING
})
并 http://localhost:8080 到下面指定的原产地
services.AddCors(options =>
{
options.AddPolicy("CorsPolicy", builder =>
{
builder.WithOrigins("http://localhost:8080") <=========== ADDING
.AllowAnyMethod().AllowAnyHeader().AllowCredentials();
});
});