Passport.js Ajax登录?

R01*_*010 5 ajax login node.js express passport.js

是否可以通过ajax使用passport.js登录?

事情是我正在通过ajax创建用户,并且我希望它能自动登录(所有JSON都以一种宁静的风格),但是req.login()做了一些我不知道的事情,并且显然发送了它自己的状态,标头,甚至重定向到家,但是我需要创建自己的json响应。

我创建用户的代码:

signup_facebook:功能(要求,要求){

    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);
        });
    })
Run Code Online (Sandbox Code Playgroud)

谢谢你的时间!

R01*_*010 0

我在这篇文章中找到了答案:

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',
    });
});
Run Code Online (Sandbox Code Playgroud)