2016-10-05 127 views
0

我使用Passport.js进行身份验证。 Session Express-Session和Mongo-Connect来存储它。我有一个问题。它停止工作。一直都很好。不,这不对。这是代码:使用node.js和express-session进行跨域身份验证

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

只是处理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}) }))

+1

多数民众赞成在我的代码也是什么。这只是会议,没有任何关于跨功能的整体。但是我在几分钟前就明白了。我更新了我所有的软件包,只是因为我在解决问题的方式上。无法分辨是更新还是其他一些小的变化:/并感谢您的时间! – gope