我正在使用express.js和angular,js创建一个Web应用程序,客户端通过facebook进行身份验证。对于facebook身份验证,我使用facebook-node-sdk连接Facebook并检索详细信息。
通过url
重定向进行身份验证时,代码运行良好。但是,当我从客户端发送POST
请求以调用相同的代码时,相同的代码不会返回结果
服务器代码
app.post('/login', Facebook.loginRequired(), function(req, res){
var result = {};
req.facebook.api('/me', function(err, user) {
console.log(user);
if(user !== undefined){
result.status = 1;
result.name = user.name;
res.contentType('json');
res.write(JSON.stringify(result));
res.render('index')
res.end();
}
else{
result.status = 0;
result.name = "Error signing into Facebook";
res.contentType('json');
res.write(JSON.stringify(result));
res.render('/')
res.end();
}
});
});
调用上面的代码时没有错误。 console.log
显示:
POST / login 302。
那么可以通过POST
请求对Facebook进行身份验证,还是应该始终是直接的URL请求?如果是这样的任何选项通过POST进行身份验证?
答案 0 :(得分:5)
如果您刚刚开始使用其他Oauth身份验证,例如gmail或twitter。我建议使用passport.js。
这简单得多。 http://passportjs.org/