エクスプレスサーバーでnode.jsを使用していますので、ログインしているローカルユーザーをセッションに保存して、フロントエンドから呼び出すことができますユーザーは実際にログインしています。パスポートエクスプレスサーバーにセッションを保存していません
私はエクスプレスセッションとパスポートを使用しています。次のコードは、正しくログインしてセッションをreqに保存すると、ユーザーを返します。
私はクエリをデバッグし、正しくデータを返します。
passport.use('local-login', new LocalStrategy({
usernameField: 'email',
passwordField: 'pass',
passReqToCallback: true
},
function(req, email, pass, done) {
return modelUsers.login(email, pass, done);
}));
これは私のセッション構成です。ログインが完了すると
app.use(session({
resave: true,
saveUninitialized: true,
secret: 'strongertogether',
cookie: { secure: false }
})); // session secret
app.use(passport.initialize());
app.use(passport.session()); // Persistent login sessions
app.use(cors()); //Required for signin facebook
は、私の知る限りでは、ユーザーは、()が真の値を返す代わりに偽である必要があり、req.userは未定義でセッションと機能req.isAuthenticatedに保存されます。
事実、twitterとfacebookのセッションは正常に動作します。 "表現"
:「^ 4.9.3私は
function loggedin(req, res) {
res.send(req.isAuthenticated() ? req.user : '0');
}
バージョンに行く
app.get('/api/loggedin', usersController.loggedin);
に呼んでいるフロントエンド(Angular.js)から
「express-session」:「^ 1.11.3」
"^ 1.0.0""パスポート":
"パスポート・ローカル" "^ 0.2.2"
私はあなたのコードを通過しませんでしたが、あなたの問題を理解するのに役立ち、このスコッチ 'https://scotch.io/tutorials/easy-node-ことが私のauthentication-setup-and-local'を実行します。私は同じ方法を使用して、私のためにうまく動作します。リンクを介して私が何かを欠けている使用することがあります。 –