点击以下链接后,重定向到facebook.com不会发生:
<a href="/auth/facebook" class="btn btn-primary"><span class="fa fa-facebook"> Facebook</span> </a>
路线如下:
//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中添加了appdomain:localhost
每当我点击HTML链接时,控件都会保留在同一页面上,然后显示无法找到的网页http://localhost:8080/auth/facebook
答案 0 :(得分:0)
您应该将Facebook开发人员的网站网址更新为http://localhost:8080/auth/facebook/callback
。据我所知,你的代码没有任何问题。我也创建了这个应用程序,代码和我的代码之间的唯一区别是我使用了ssl证书。即使更新的网址对您不起作用,请告诉我。