2016-10-21 1 views
0

私はpassportjs(google/facebook戦略)を使用してログインしています。私が観察したことは、req.session(express-sessionから)は、(serializeユーザーを使用して)ソーシャルチャネルを介してログインした後、 'passport.user'キーで更新されるということです。これは問題ありません。エクスプレスサーバーのリクエストオブジェクトは保持されません

私が期待したのは、次のhttp要求が行われた場合、req.sessionにはまだpassport.userキーが含まれていても、それは起こらないということでした。だから私はmongo-connectを通してセッションをmongodbに保存しなければなりませんでした。今、mongo storeに私はセッション情報を持っています。

これは正常な動作ですか?そのreqオブジェクトは、同じエクスプレスサーバーインスタンスへの2つのHTTP要求の間に持続しませんか?したがって、新しいリクエストが行われるたびに、セッションをmongoストアから取得する必要があります。

上記のreq.sessionの動作が真である場合、なぜdeserializeUserが必要なのでしょうか?

答えて

0

Passportのセッションミドルウェアを使用するようにアプリをセットアップしましたか?

// Configuring Passport 
var passport = require('passport'); 
var expressSession = require('express-session'); 

app.use(session({ secret: 'secret'})); 
app.use(passport.initialize()); 
app.use(passport.session()); 

私はウェブアプリケーションを構築し、パスポートのローカル戦略を使用しています。認証に成功すると、ユーザー情報がセッションに追加され、セッションから削除されるまで(ログアウト中)ユーザー情報が保持されます。

関連する問題