ASP.Net Core 2身份验证将Cookie写入localhost不同的端口

时间:2018-09-19 14:33:30

标签: asp.net cookies asp.net-identity asp.net-core-2.0

我有一个.net Core 2 Web API,该API为将从子域提供服务的vue.js提供服务。

我目前有一个vue.js客户端站点,它接受来自ASP.Net Core Identity Web api的身份验证cookie。我刚刚将客户端应用程序从.net核心应用程序中迁移出来,以便从节点实例进行服务。

我在本地调试,并且两者都在具有不同端口的localhost上运行。

我想知道是否可以通过指定身份应服务的域/主机来使.net核心身份向vue.js站点传递身份验证cookie。

最终,客户端和服务器应用程序将从相同的域提供服务,但从不同的子域提供服务。

2 个答案:

答案 0 :(得分:1)

将您的vue http客户端设置为使用凭据。例如,对于axios,您将覆盖默认值“ withCredentials”:

axios.defaults.withCredentials = true;

答案 1 :(得分:0)

我通过在我的axios实例上添加withCredentials:true来解决

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();
    });
});