使用node.js和express-session进行跨域身份验证

时间:2016-10-05 09:33:18

标签: node.js express dns subdomain

我正在使用Passport.js进行身份验证。 Session Express-Session和Mongo-Connect存储它。我有一个问题。它停止了工作。一切都很好。不,这不对。这是代码:

app.use(session({
    secret: 'secret',
    resave: true,
    // unset: 'destroy',
    domain: '.domain.com',
    saveUninitialized: false,
    cookie:  {
        // path: '/',
        domain: '.domain.com',
        maxAge: 24 * 6 * 60 * 10000
    },
    store: new MongoStore({url: config.db, autoReconnect:true})
}))

auth过程运行正常,但它不再适用于跨域。

有人有个主意吗?检查了更新但没有找到任何内容。

1 个答案:

答案 0 :(得分:1)

只需处理这样的CORS效果,然后在代码上方添加以下代码

app.use(function(req, res, next) { res.header("Access-Control-Allow-Origin", "*"); res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, authorization"); res.header("Access-Control-Allow-Methods", "GET,POST,DELETE,PUT,OPTIONS"); next(); });

现在,在这个中间件之后你应该把你的代码放在这个

app.use(session({ secret: 'secret', resave: true, // unset: 'destroy', domain: '.domain.com', saveUninitialized: false, cookie: { // path: '/', domain: '.domain.com', maxAge: 24 * 6 * 60 * 10000 }, store: new MongoStore({url: config.db, autoReconnect:true}) }))