私は 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)
}
});
});