2017-04-21 8 views
0

エクスプレスサーバーで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"

+0

私はあなたのコードを通過しませんでしたが、あなたの問題を理解するのに役立ち、このスコッチ 'https://scotch.io/tutorials/easy-node-ことが私のauthentication-setup-and-local'を実行します。私は同じ方法を使用して、私のためにうまく動作します。リンクを介して私が何かを欠けている使用することがあります。 –

答えて

0

あなたはパスポートローカルドキュメンテーションを読んだことがありますか?

passport-local npm

とスニペットは、あなたのルートで怒鳴るようにあなたのルートを使用してい?

app.post('/login', 
    passport.authenticate('local', { failureRedirect: '/login' }), 
    function(req, res) { 
    res.redirect('/'); 
}); 

上記のコードはpassport-localの文書にあります。

または多分あなたはここでチェックしてみてください:https://github.com/egin10/login-passport/blob/master/routes/users.js

関連する問題