目前,我们在客户端/api cookie生成方面遇到了错误。我们使用角12和NGINX作为前端服务器,在cms.domain.co.uk的子域上运行SSL;后端在api.domain.co.uk:3067子域上运行pm2和SSL。
我们的后端nodejs文件有以下CORS选项片段:
const app = express();
app.use(express.json());
app.use(cookieParser());
app.use(cors({
origin: 'https://cms.domain.cloud',
credentials: true,
methods: 'GET, POST, OPTIONS',
allowedHeaders: 'Origin, Content-Type, X-Auth-Token, Set-Cookie, Authorisation, Accept'
}));
我们在node.js文件中设置cookie,如下所示:
response.cookie('LoginCookie', sid, {httpOnly: true, secure: true, SameSite: "none"});
我们已经尝试了每一个可行的组合,来源,标签和政策,我们现在正式陷入困境。原谅我们在CORS中的天真,因为我们来自非交叉的背景。
服务器的响应标头包含set-cookie标记,但在浏览器中没有设置cookie,在POST和选项中都将允许凭据控件设置为true,并设置了源设置以避免CORS错误。
这是发送的飞行前选项标头:
这是与Set-Cookie标记一起发送的POST头:
通过使用使用的chrome.exe --用户数据-dir=“C:/chrome.exe会话”启动另一个chrome窗口--禁用web安全性,浏览器在其中一节确认存在cookie,而在另一节中不承认:
任何反馈或帮助都将不胜感激!谢谢!
发布于 2022-05-27 19:41:47
另一种方法是检索“LoginCookie”键集Cookie头的de值,并通过document.cookie.setItem( 'LoginCookie', <data>)
将其存储到浏览器中。
https://stackoverflow.com/questions/72409023
复制相似问题