这导致我复制到我的目录中this repo。当然它没有像那样运行所以我不得不在不同的时间运行npm install
,如:
npm install mongoose
npm install passport-local
npm install passport-facebook
然后在整个地方创建了新文件,所以我想知道其中任何一个现在都在某种程度上干扰了身份验证。因为当我在本地运行服务器时,我试图通过Facebook登录。然后我收到了错误
Invalid App ID: clientID
我认为我需要做的就是在那里添加我的凭据?但是passport-facebook
创建的目录中的文件看起来需要大量修改。
在我的passport.js文件中,我做了这个修改
passport.use(new FacebookStrategy({
clientID: xxxxxxxxx, //my "App id" from Facebook
clientSecret: xxxxxxxxx, //my "App Secret"
callbackURL: "http://www.example.com/auth/facebook/callback" //found this format on a tutorial
},
这是我的routes.js
var User = require('../app/models/user');
var Auth = require('./middlewares/authorization.js');
module.exports = function(app, passport){
app.get("/", function(req, res){
if(req.isAuthenticated()){
res.render("home", { user : req.user});
}else{
res.render("home", { user : null});
}
});
app.get("/login", function(req, res){
res.render("login");
});
app.post("/login"
,passport.authenticate('local',{
successRedirect : "/",
failureRedirect : "/login",
})
);
app.get("/signup", function (req, res) {
res.render("signup");
});
app.post("/signup", Auth.userExist, function (req, res, next) {
User.signup(req.body.email, req.body.password, function(err, user){
if(err) throw err;
req.login(user, function(err){
if(err) return next(err);
return res.redirect("profile");
});
});
});
app.get("/auth/facebook", passport.authenticate("facebook",{ scope : "email"}));
app.get("/auth/facebook/callback",
passport.authenticate("facebook",{ failureRedirect: '/login'}),
function(req,res){
res.render("profile", {user : req.user});
}
);
app.get("/profile", Auth.isAuthenticated , function(req, res){
res.render("profile", { user : req.user});
});
app.get('/logout', function(req, res){
req.logout();
res.redirect('/login');
});
}
我曾在similar question中读过这些预防措施
“检查您所使用的ID的应用是否受到人口统计限制(例如按年龄或国家/地区限制),并确保其不在沙盒模式下。”
这是截图,不知道我还需要做什么。