पर जाता है मैं फेसबुक प्रमाणीकरण के साथ नोड, एक्सप्रेस और पासपोर्ट का उपयोग कर रहा हूं।
मैं निम्नलिखित मार्गों (कॉलबैक यूआरएल /facebook/auth/callback
है जब) है:पासपोर्ट प्रमाणीकरण विफलता रीडायरेक्ट लूप
function render(page, req, res) {
var user = null;
if (req.user) {
user = req.user.toObject();
user.isLoggedIn = true;
}
res.render(page, { user: user });
}
app.get('/auth-failure', function (req, res) {
res.render('auth-failure');
});
app.get('/auth-success', function (req, res) {
render('auth-success', req, res);
});
app.get('/facebook/auth', passport.authenticate('facebook', { scope: [ 'email', 'user_about_me', 'publish_actions']}));
app.get('/facebook/auth/callback', passport.authenticate('facebook', { failureRedirect: '/auth-failure', successRedirect: '/auth-success' }));
जब प्रमाणीकरण सफल रहा पेज auth-success
दृश्य मिला के रूप में मैं उम्मीद थी। लेकिन जब प्रमाणीकरण विफल हुआ और फेसबुक वापस आ गया: http://localhost:3000/facebook/auth/callback?error_code=2102&error_message=User+is+not+a+test+user+owned+by+the+application#=
मुझे auth-failure
दृश्य नहीं मिला है! इसके बजाय, फ़ायरफ़ॉक्स मुझे रिटर्न पेज:
मैं चीजों की जांच करने के लिए प्रयास करें और मैं करने के लिए विफलता रूटर की जगह:
app.get('/facebook/auth/callback', function (req, res) {
res.redirect('/auth-failure');
});
जब क्रोम में चल रहा है, मैं संदेश मिलता है
और इसने auth-failure
सफलतापूर्वक देखें।
passport.js फेसबुक विफलता प्रमाणीकरण के साथ समस्या क्या है?
यह मुझे त्रुटि पृष्ठ क्यों देता है?
@Matt Bakaitis टिप्पणी करने के बारे में:
यहाँ मुझे क्रमानुसार और कार्यों deserialize है:
// serialize sessions
passport.serializeUser(function(user, done) {
done(null, user.id);
});
passport.deserializeUser(function(id, done) {
User.findOne({ _id: id }, function (err, user) {
done(err, user);
});
});
यह उदाहरण काम करता दिखाई देता है हालांकि फ़ायरफ़ॉक्स में। – jhtong
@toiletfreak: मैंने फ़ायरफ़ॉक्स में इस गलत व्यवहार की छवि संलग्न की है। – Naor
क्या आपने पासपोर्ट.serialize या passport.deserialize कोड बदल दिया था? –