2017-04-06 12 views
1

私はNode.jsの初心者で、ログインセッションにパスポート・ローカル戦略を使用しました。私はすでにWebアプリケーションですべてのことを設定しましたが、私はセッションで大きな問題を抱えています。Passport Node.jsのexpressを使用したローカル戦略セッション

複数のユーザーが同時に私のWebアプリケーションにログインすることができましたが、問題があります。ユーザーの1人(例:ユーザー名がPaul)が最初にログインし、その後別のユーザー(Chris)がログインすると、PaulのWebアプリケーションのビューがChrisのビューに変更されます。

私は君たちが私はそれによって何を意味するか理解していないが、ここでNode.jsの

の私のコードの1
app.get('/location', isLoggedIn, function(req, res){ 
    var user_temp = {user: ''}; 
    user_temp.user = global_username; 
    res.render('location/index1', user_temp); 
}); 

されており、コードの下にパスポートローカル戦略

var LocalStrategy = require('passport-local').Strategy; 
passport.use('local-login', 
    new LocalStrategy({ 
     usernameField : 'email', 
     passwordField : 'password', 
     passReqToCallback : true 
    }, 
    function(req, email, password, done) { 
     User.findOne({ 'email' : email }, function(err, user) { 
     if (err) return done(err); 
     if (!user){ 
      req.flash("email", req.body.email); 
      return done(null, false, req.flash('loginError', 'No user found.')); 
     } 
     if (!user.authenticate(password)){ 
      req.flash("email", req.body.email); 
      return done(null, false, req.flash('loginError', 'Password does not Match.')); 
     } 
     var email_address = req.body.email; 
     username_tmp = email_address; 
     var username = email_address.substring(0, email_address.lastIndexOf("@")); 
     global_username = username; 
     pass = req.body.password; 
     return done(null, user); 
     }); 
    } 
) 
); 

です私は問題がglobal_usernameのせいだと思うので、PaulはChrisの位置を見ることができます。しかし、私はどのようにユーザー変数を取得し、各ユーザーのejsに入れているのかわかりません。

誰でも私をここで助けることができます....?

ありがとうございます!

P.S. 私の質問をもう一度編集して説明することができます...

答えて

1

グローバルを使用することはできません。それぞれのリクエストで上書きされるため、記述している問題が発生します。あなたは正しくパスポートとexpress-sessionを設定している場合

代わりに、パスポートはreq.userを介して(認証済み)の要求のためのユーザー・データを提供します:

app.get('/location', isLoggedIn, function(req, res) { 
    res.render('location/index1', { user : req.user }); 
}); 

はまた、アイデアを得るためにthe passport-local example applicationで見てみることができますすべてがどのようにつながっているかについて。

+0

お返事ありがとうございます!それは今働きます! :)と遅い応答にごめんなさい...: '(あなたは素晴らしい一日を持つことを望む!私の人生救い主:) – paulc1111

関連する問題