是否可以使用passport.js通过ajax登录?
问题是,我正在通过ajax创建一个用户,我希望它能自动登录(所有使用json的东西都是restful风格的),但req.login()做了一些我不知道的事情,它显然会发送自己的状态、头,甚至重定向到主页,但我需要的是创建自己的json响应。
我创建用户的代码:
signup_facebook:function(req,res){
var restponse = new Restponse();
var body = req.body;
var obj = {
display_name: body.first_name,
name: body.first_name,
surname: body.last_name,
photos: ['http://graph.facebook.com/'+ body.id+ '/picture?type=normal'],
gender: body.gender,
facebook: {
userID: body.id,
displayName: body.display_name
}
}
User.facebookSignUp(obj, function(user){
if(user !== false){
user = obj;
restponse.location = '/';
restponse.status = HTTPStatus.REST.C201_OK;
}else{
restponse.location = '/';
restponse.status = HTTPStatus.REST.C302_FOUND;
}
restponse.body = user;
req.login(user, {}, function(err) {
APIheart.respondJson(res, restponse);
});
})
谢谢你抽出时间!
我在这篇文章中找到了答案:
http://toon.io/on-passportjs-specific-use-cases/
// Manually establish the session...
req.login(user, function(err) {
if (err) return next(err);
return res.json({
message: 'user authenticated',
});
});