首页 > 解决方案 > 跨域 HttpOnly Cookie

问题描述

我有一个网站:

www.example.com

该网站是一个单页应用程序 (SPA),它调用此子域中的 API:

api.example.com

今天我在 API 中使用授权标头(承载令牌),但我试图用 Cookie 替换它,因为如果我使用标志“HttpOnly”,Javascript 无法访问 cookie,然后我可以防止 XSS 攻击。

当用户登录(“api.example.com/login”)时,我正在使用此代码在 Node.js 中设置 cookie:

exports.handler = async function(event) {
    ...
    let userSessionId = ...
    ...
    response['headers']['Set-Cookie'] = `user_session_id=${userSessionId}; HttpOnly`;
    return response;
}

浏览器正在接收“Set-Cookie”标头,但未在后续 API 调用中传递它。

是否可以将 AJAX 请求中的“HttpOnly”cookie 从“www.example.com”发送到“api.example.com”?

我应该将我的 API 端点更改为“www.example.com/api”吗?或者还有其他选择吗?如果可能,我想将 API 保留在不同的子域(“api.example.com”)中。

标签: node.jscookiessingle-page-applicationxsshttponly

解决方案


推荐阅读