繼passportJS docs for passport-facebook我試圖實現Express身份驗證的中間件。我正在使用mongoose-findorcreate來創建passportJS所需的findOrCreate函數。passportJS - passport-facebook無法GET失敗重定向路由
我可以重定向到Facebook登錄表單,並使用我的Facebook帳戶登錄。但後來我重定向到failureRedirect URL其返回以下內容:?
不能得到 /auth /中的Facebook /回調代碼= AQBsq2xY-YTsNMmipM45BVBBC9W1QovO1grjC64nDe1psWuRZQwjGv8SMpXuou3s9SaVIIS0_3RqJn-SQ339wPD_TWjRPIpXpZZVHerTRZEQnQYLvt1CM0qMzG5R_JNqfYib6rkmuP4epXou5HoqUa01qszUpYfGMPHUYyNVx1VdMSu3RLbdta8rYle9am539NzYL8ihlwlflnFku-8H3QqlzWJ5Ta1pQ29N0ZyRRu38nKzrDQk-jE5Sq9WECDZ6aUX-KWvexM_5UAUJ60crUPFVxZyWwV__5N6DyDEpS9SrWKdcrpdwcMOd4u0z6mbK7os
這是我的型號:
const mongoose = require('mongoose');
const findOrCreate = require('mongoose-findorcreate');
// Schema definition
const userSchema = mongoose.Schema({
provider: String,
id: String,
displayName: String,
name: [
{familyName: String},
{givenName: String},
{middleName: String},
],
emails: [
{value: String},
{type: String},
],
photos: [
{value: String},
],
});
userSchema.plugin(findOrCreate);
// Compile model from schema
module.exports = mongoose.model('User', userSchema);
應用的護照部分:
passport.use(new FacebookStrategy({
clientID: conf.facebookClientID,
clientSecret: conf.facebookSecret,
callbackURL: 'http://localhost:3000/auth/facebook/callback',
},
function(accessToken, refreshToken, profile, done) {
User.findOrCreate(function(err, user) {
if (err) { return done(err); }
done(null, user);
});
}
));
// Authentication routes
app.get('/auth/facebook', passport.authenticate('facebook'));
app.get('auth/facebook/callback',
passport.authenticate('facebook', {
successRedirect: 'http://localhost:3000/words',
failureRedirect: 'http://localhost:3000/auth/facebook',
}));
我試圖找出爲什麼登錄失敗,爲什麼用戶不被寫入到我的數據庫(我可以查詢其他的東西的數據庫,所以我知道連接是有效的)。
如果您需要更多關於該項目的信息,請詢問我將編輯該問題。您也可以檢查gitHub repo。
唉,就這麼簡單。謝謝 –
不客氣。 –