2017-08-26 46 views
0

重定向到facebook.com不會發生,一旦我點擊以下鏈接認證使用Passport JS對於Facebook

//Facebook 
app.get('/auth/facebook', passport.authenticate('facebook', { scope : ['email'] })); 

app.get('/auth/facebook/callback', 
    passport.authenticate('facebook', { successRedirect: '/profile', 
             failureRedirect: '/' })); 

戰略碼是如下:

var FacebookStrategy = require('passport-facebook').Strategy; 
passport.use(new FacebookStrategy({ 
     clientID: configAuth.facebookAuth.clientID, 
     clientSecret: configAuth.facebookAuth.clientsecret, 
     profileFields: ['id', 'displayName', 'email'], 
     callbackURL: configAuth.facebookAuth.callbackURL 
    }, 
    function(accessToken, refreshToken, profile, done) { 
     process.nextTick(function() { 
      User.findOne({ 
       'facebook.id': profile.id 
      }, function(err, user) { 
       if (err) 
        return done(err); 
       if (user) 
        return done(null, user); 
       else { 
        var newUser = new User(); 
        newUser.facebook.id = profile.id; 
        newUser.facebook.token = accessToken; 
        newUser.facebook.name = profile.name.givenName + ' ' + profile.name.familyName; 
        newUser.facebook.email = profile.email[0].value; 

        newUser.save(function(err) { 
         if (err) 
          throw err; 
         else 
          return done(null, newUser); 
        }) 
       } 
      }); 
     }); 

    } 
)); 

我已經更新我的auth.js文件中的祕密。 我也更新了網站網址:http://localhost:8080,並添加應用程序域:本地主機在developers.facebook.com

每當我點擊HTML鏈接上的控制仍然是同一個頁面上,然後無法找到該網頁http://localhost:8080/auth/facebook顯示

回答

0

你應該更新Facebook開發者的網站地址爲http://localhost:8080/auth/facebook/callback。據我所見,你的代碼沒有錯。我也創建了這個應用程序,你的代碼和我的代碼之間唯一的區別是我使用了SSL證書。即使更新後的網址不適合您,請告訴我。

+0

感謝@Gousia的回覆。 但我猜[http:// localhost:8080 /]應該是網站的網址。 [http:// localhost:8080/auth/facebook/callback]應該是回叫網址。 雖然我改變了它,正如你所建議的仍然沒有成功。 問題是一旦我點擊FB鏈接,頁面剛剛加載,然後超時幾秒後說http:// localhost:8080/auth/facebook /無法連接 – ami27

+0

嘗試添加ssl證書,我認爲它會工作 – Gousia

相關問題