我正在使用来自第三方的身份验证API来帮助验证我们正在构建的web应用程序上的用户。我在没有域参数的情况下返回cookie时遇到了问题。
我正在关注提供的邮递员集合。响应返回两个cookie,其中正确列出了域参数:enter image description here
然而,当我从Postman复制Node.js - Request的代码时,我收到了cookie,但是域参数是空的。这使得cookies无法在后续调用中使用,因为它们是HttpOnly。
这是来自chrome inspector -Network的cookie响应:
下面是我添加到MERN应用程序中的代码:
getFlow = (callback) => {
var request = require('request');
var options = {
'method': 'POST',
'url': 'https://auth.pingone.com/XXX/as/authorize',
'headers': {
'Content-Type': 'application/x-www-form-urlencoded',
'User-Agent': 'LII-Cello/1.0 libwww/2.5',
'Cookie': 'ST=XXX',
'accept-encoding': 'gzip, deflate, br',
'content-length': '180'
},
form: {
'response_type': 'token',
'client_id': 'XXX',
'redirect_uri': 'XXX',
'scope': 'openid profile p1:read:user'
}
};
request(options, function (error, response) {
if (error) throw new Error(error);
let flowId = response._fetchResponse.url.split('flowId=')[1];
});为什么请求没有返回带有域名的cookie,但在Postman中正确返回?
发布于 2020-03-24 05:37:35
域是隐式的,它是由Postman显示的,因为它是从您呼叫的主机名推断出来的。如果该字段为空,则不会阻止Cookie按预期方式工作。
请看这个:Set-Cookie header not working across domain,它详细介绍了让第三方cookie在现代浏览器中工作的步骤。
https://stackoverflow.com/questions/60821858
复制相似问题