我一直在试验 Ember.js 和 Node.js,但遇到了问题。我已经使用标准Express.session
系统保护了服务器上的 API 路由,但是当这些 API 服务于 Ember.js 应用程序时我遇到了问题。由于 Ember 应用程序无法将值存储在 中req.session
,因此我的应用程序无法运行。我应该如何进行身份验证,以便我仍然可以对我的 API 进行会话保护?这是我当前的一些服务器登录代码:
“检查登录”功能:
var checkLogin = function(req, res, callback) {
if (req.session.user) {
callback();
} else {
res.send({error: "AuthRequired"});
}
};
Ember 发出请求时出错:
TypeError: Cannot read property 'user' of undefined
中间件设置:
app.configure(function () {
app.use(express.bodyParser());
app.use(express.static(__dirname + '/static/'));
app.use(express.cookieParser(<SECRET>));
app.use(express.session());
//to not care about invalid JSON requests
app.use(function(err, req, res, next) {
if (err.message == 'invalid json') {
next()
} else {
next(err)
}
});
});