使用错误代码作为“FacebookTokenError”实现passport-facebook身份验证时出错:redirect_uri不是绝对URI检查 RFC 3986

如何解决使用错误代码作为“FacebookTokenError”实现passport-facebook身份验证时出错:redirect_uri不是绝对URI检查 RFC 3986

我正在使用本地主机来测试护照 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 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?