问题描述
我正在使用本地主机来测试护照 Facebook 身份验证,我一直在尝试实施身份验证,但遇到了上面提到的错误我的dns地址,但无济于事, 这是我用于 Facebook 身份验证的passport.js 代码
const mongoose = require("mongoose");
const FacebookStrategy = require('passport-facebook').Strategy;
const passport = require('passport');
const User = module.exports = mongoose.model('User',facebookSchema)
var facebookSchema = mongoose.Schema
module.exports = function (_passport) {}
//serialize the user for the session
passport.serializeUser(function (user,done) {
done(null,user.id);
});
//deserialize the user
passport.deserializeUser(function (id,done) {
User.findById(id,function (err,user) {
done(err,user);
});
});
passport.use('facebook',new FacebookStrategy({
clientID: 'XXXXXXXXXX',clientSecret: 'YYYYYYYYYYYYYYY',callbackURL: " http://localhost:3000/auth/facebook/callback",enableProof: true,profileFields: ['id','displayName','photos','email']
},function (accesstoken,refreshToken,profile,done)
{ let newUser = new User();
// set the user's facebook credentials
newUser.facebook.email = profile.emails[0].value,newUser.facebook.fullName = profile.displayName,User.findOne({email:newUser.facebook.email },function(err,user) {
if(!user) {
newUser.save(function(err,newUser) {
if(err) return done(err);
done(null,newUser);
});
} else {
done(null,user);
}
});
}
));
这是我用于初始化应用程序的 index.js 代码
const rfc = require('rfc-3986');
const express = require('express');
const bodyParser = require('body-parser');
var routes = require('./routes/routes'); //importing route
require('./models/usermodel')
app = express();
port = 3000;
require("./config/db"); app.get('/success',(req,res) => res.send("You have successfully logged in"));
app.get('/error',res) => res.send("error logging in"));
const passport = require("passport");
app.use(passport.initialize());
app.use(passport.session());
require('./config/passport')(passport);
app.set(rfc)
routes(app,passport);
app.set('view engine','ejs')
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({extended:true}))
app.listen(port,()=>{
console.log('server listening on localhost:' + port)
});
这是我用于应用路由的routes.js
app.get('/auth/facebook',passport.authenticate('facebook',{scope:"email"}));
app.get('/auth/facebook/callback',{ failureRedirect: '/login' }),function(req,res) {
// Successful authentication,redirect home.
res.redirect('/success');`module.exports = function(app,passport) {
app.get('/auth/facebook',redirect home.
res.redirect('/success');
});
}
});
}
this is the error i get on browser
this is the same error on terminal
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)