2017-01-08 11 views
0

私はパスポートのFacebookの戦略を使用するアプリケーションを展開しようとしています。私はまずlocalhostで自分のアプリケーションをテストしてからAWSに展開しようとしました。平均スタックFacebookのログイン

私のローカルマシンではうまく動作していたようですが、配備すると複数のFacebookアカウントでログインしようとしました。

私はAPI呼び出しで受け取った変数を保存して、しかし、私の最初の認証されたユーザを、角度

経由でそれらを取得し、すべてが正常に働いているようだが、第二のユーザ認証時には、ユーザ名のようにプロフィール画像を自分の変数を上書きします

私はこれをやっている理由を知っています。しかし、私は即座に解決策を考えているわけではありません。私はあなたのユーザーを保存するにはどうすればよい

app.get('/login/facebook', 
    passport.authenticate('facebook')); 

app.get('/login/facebook/return', 
    passport.authenticate('facebook', { failureRedirect: '/login' }), 
    function(req, res) { 
    res.redirect('/'); 
    UserID = req.user.id; 
    UserDisplayName = req.user.displayName; 

    UserProfileImage = req.user._json.picture.data.url; 
    console.log(req.user._json.picture.data.url) 

    var User = UserID + UserDisplayName; 
    var ProfilePicture = UserProfileImage 
    res.json({name: User , url: ProfilePicture}); 
    }); 

app.get('/profileInfo', function(req, res){ 
    var User = UserID + UserDisplayName; 
    var ProfilePicture = UserProfileImage 
    res.json({name: User , url: ProfilePicture}); 

}); 

答えて

0

を認証したときにここで

は私のサーバー側のコードですか?

あなたのコードから、あなたのユーザーIDをUserID変数に保存することをお勧めしますが、次のユーザーがログインすると上書きされます。

私はあなたのコード全体を見ますが、このような何かを試すことができないので、私は唯一のquessingよ:

var users = {}; 

app.get('/login/facebook/return', 
    passport.authenticate('facebook', { failureRedirect: '/login' }), 
    function(req, res) { 

    // save user to users object 
    users[req.user.id] = { 
     displayName: req.user.displayName, 
     profileImage: req.user._json.picture.data.url 
    } 

    res.redirect('/'); 
    }); 

// you need to use some kind of sessions or cookies to know which user this is 
// for simplicity let's assume you get profile by user's id /profileInfo/:id 
app.get('/profileInfo/:id', function(req, res) { 

    res.json(users[req.params.id]); 

}); 
関連する問題