2017-08-26 3 views
0

La redirection vers facebook.com ne se produit pas une fois que je clique sur le lien ci-dessous:authentification à l'aide Passeport pour JS facebook

<a href="/auth/facebook" class="btn btn-primary"><span class="fa fa-facebook">&nbsp; Facebook</span> </a> 

itinéraires sont les suivantes:

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

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

Le code de la stratégie est aussi suit:

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); 
        }) 
       } 
      }); 
     }); 

    } 
)); 

J'ai mis à jour les secrets dans mon fichier auth.js. J'ai également mis à jour l'URL du site: http://localhost:8080 et a ajouté appdomain: localhost dans developers.facebook.com

Chaque fois que je clique sur le lien HTML le contrôle reste sur la même page et la page Web http://localhost:8080/auth/facebook ne peut pas être trouvée est affichée

Répondre

0

Vous devez mettre à jour l'URL du site Web dans les développeurs facebook en tant que http://localhost:8080/auth/facebook/callback. Pour autant que je vois, il n'y a rien de mal dans votre code. J'ai aussi créé cette application, la seule différence entre votre code et mon code est que j'ai utilisé des certificats SSL. Même si l'URL mise à jour ne fonctionne pas pour vous, faites le moi savoir.

+0

Merci à @Gousia de répondre. Mais je suppose que [http: // localhost: 8080 /] devrait être l'URL du site. Et [http: // localhost: 8080/auth/facebook/callback] devrait être l'URL de rappel. Bien que je l'ai changé, comme vous avez suggéré toujours pas de succès. Le problème est une fois que je clique sur FB Link, la page se charge juste, puis expire après quelques secondes en disant http: // localhost: 8080/auth/facebook/ne pouvait pas être connecté – ami27

+0

Essayez en ajoutant les certificats SSL, je pense ça marcherait – Gousia