gpt4 book ai didi

javascript - 将服务器移动到 CORS 位置时 Passport/Express session 身份验证中断

转载 作者:行者123 更新时间:2023-12-02 15:43:08 25 4
gpt4 key购买 nike

我正在使用 angular.js 和 ionic 构建一个应用程序。我将所有前端应用程序的内容移动到一个包中,并将服务器逻辑移动到 digital ocean 上它自己的液滴中。现在前端要做CORS。在初始身份验证中,除了 Express 响应中的 cookies 对象为空之外,一切似乎都运行良好。

当它起作用时,没有 CORS。我得到了这个

 cookies: { 'connect.sid': 's:ZrKJ7BxH2yeAiFG5uTC2FlhpfCa9S17K.oA5bCUQjZbdJBS8ohzngSiOEFzJWCyKxLDlBdEUqhzk' },

现在,当服务器在 Droplet 上运行并启用 CORS 时,我从响应中得到此信息

  cookies: {},

唯一不同的是请求来自 CORS。两者均未设置“env”,因此它们都默认为开发。

我设置的 CORS 是这样的:

var allowCrossDomain = function(req, res, next) {
console.log("In allow cross domain function", req.headers)
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Methods', 'GET, POST');
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
res.header('Access-Control-Allow-Credentials', true);
next();
}

在 Chrome 开发人员工具中,我从未在资源/cookie 选项卡中看到 cookie,但在执行 CORS 之前我看到过...现在肯定是响应被发送回不同的域,对吗?我想不出还有什么会导致护照/ express 无法像“单域”设置之前那样工作。

编辑:我也会发布快速 session 代码,尽管这在移动服务器之前是有效的。

app.use(session({
secret: app.getValue('env').SESSION_SECRET,
store: new MongoStore({mongooseConnection: mongoose.connection}),
cookie: { maxAge: 60000, secure: false },
resave: false,
saveUninitialized: false
}));

app.use(passport.initialize());
app.use(passport.session());

passport.serializeUser(function (user, done) {
console.log('Passport serializing user =>', user)
done(null, user._id);
});

passport.deserializeUser(function (id, done) {
console.log('Received this id => ', id)
UserModel.findById(id, done);
});

最佳答案

您不能为包含 cookie 的请求设置来源通配符。

CORS with credentials

Important note: when responding to a credentialed request, server must specify a domain, and cannot use wild carding. The above example would fail if the header was wildcarded as: Access-Control-Allow-Origin: *.

此外,如链接所述,您需要将 withCredentials: true 设置为 AJAX 请求。

关于javascript - 将服务器移动到 CORS 位置时 Passport/Express session 身份验证中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32424699/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com