You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NextJS与Azure上的ASP.NET Core Web API:Cookie无法设置到浏览器

问题描述
  • 部署环境:ASP.NET Core Web API部署于Azure,地址:https://socialchainapi.azurewebsites.net/;NextJS应用部署于Vercel,地址:https://socialchain-client-api.vercel.app/
  • 后端Cookie配置参数:
HttpOnly = true, Expires = refreshTokenExpiryDate, IsEssential = true, 
Secure = true, SameSite = SameSiteMode.None,
  • 后端添加Cookie的代码:
Response.Cookies.Append("refreshToken", verifyResult.Value.User.RefreshToken, cookieOptionsRefreshToken); 
Response.Cookies.Append("accessToken", verifyResult.Value.AccessToken, cookieOptionsAccessToken);

var verifyResponse = new VerifyResponse(verifyResult.Value.User.AccountAddress, verifyResult.Value.AccessToken); 
return Ok(verifyResponse);
排查与修复步骤

1. 修正后端CORS配置

ASP.NET Core后端必须开启允许携带凭证的CORS策略,且指定精确的前端域名(不能用通配符*,否则AllowCredentials会失效):

builder.Services.AddCors(options =>
{
    options.AddPolicy("AllowVercelClient",
        policy =>
        {
            policy.WithOrigins("https://socialchain-client-api.vercel.app")
                  .AllowAnyHeader()
                  .AllowAnyMethod()
                  .AllowCredentials(); // 核心配置,开启后浏览器才会保存跨域Cookie
        });
});

// 注意:CORS中间件需放在路由、认证中间件之前
app.UseCors("AllowVercelClient");

2. 前端请求添加凭证配置

发送请求时必须明确携带凭证,否则浏览器会忽略返回的Cookie:

  • 使用fetch时:
fetch('https://socialchainapi.azurewebsites.net/your-api-endpoint', {
  method: 'POST',
  credentials: 'include',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify(yourRequestData)
});
  • 使用axios时:
axios.post('https://socialchainapi.azurewebsites.net/your-api-endpoint', yourRequestData, {
  withCredentials: true
});

3. 正确检查Cookie存储位置

Cookie绑定在设置它的API域名(socialchainapi.azurewebsites.net)下,而非前端域名。查看时需切换到浏览器Application面板的Cookie列表,选择API域名查看。另外,HttpOnly = true的Cookie无法通过document.cookie获取,只能在Application面板看到,这是正常的安全机制。

4. 验证Cookie响应头属性

确认后端返回的Cookie响应头中,SameSite=None和Secure必须同时存在(当前配置已满足,但需检查实际响应头是否正确);HttpOnly标记的Cookie不会暴露给JS,但会被浏览器正常存储并在后续请求中自动携带。

内容的提问来源于stack exchange,提问作者ahmed7am1d

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 09:27:41