私はpassport-facebookを使用してユーザーにログインしています。facebookがmytコールバックを呼び出すと、私は定義されていないループに入ります。私は多くのサイトと質問を読んできましたが、実際には、私はどんな解決策も見つけることができません。ここでNode.js passport-facebookコールバックループ
がコードである、 - 私はそれがUNE単一のファイルにしたように、ここではそれをすべてを置くつもり:本当に、私は非常にイライラしてる
var restify = require('restify');
var passport = require('passport-restify');
var FacebookStrategy = require('passport-facebook').Strategy;
var server = restify.createServer();
server.use(restify.bodyParser());
passport.use(new FacebookStrategy({
clientID: 'APP_ID',
clientSecret: 'APP_SECRET',
callbackURL: 'http://192.168.0.13:8080/login/facebook/callback'
}, function (token, refreshToken, profile, done) {
//this code never is executed, why?
return done(null, profile);
}));
server.use(passport.initialize());
server.get('/login/facebook', function(req, res, next) {
passport.authenticate('facebook', { display: null, scope: ['email']})(req, res, next);
});
server.get('/login/facebook/callback', (req, res, next) => {
//here is where the loop happends, i´m getting into this and never can go out from here
passport.authenticate('facebook', function(profile) {
//I could not execute this
if (!profile || !profile.id) {
return res.json(500, 'We had trouble signing you up with Facebook. Please try again or sign-up via email.');
} else {
res.json(200, profile);
}
})(req, res, next);
});
server.listen(config.port, function() {
console.log('%s listening at %s', server.name, server.url);
});
、私は今、私は今、そこにあります何千ものポストを話して...私はそれらのすべてを試して、とにかくここにいる...
ありがとう。
serialize/deserialize関数を表示できますか? – John
passport.serializeUser(function(profile、done){ done(null、profile); }); passport.deserializeUser(function(profile、done){ done(null、profile); }); –
serializeUserの中で、この 'done(null、profile)'を 'done(null、profile.id)'に置き換えようとしました。 – John