req.user не определен

Я хочу написать REST-API с NodeJS+Restify и PassportJS для аутентификации. Когда пользователь входит в систему, я генерирую идентификатор сессии и сохраняю его в сеансе, который я создаю сам.

var Passport                = require( 'passport' );
var PassportBearerStrategy  = require('passport-http-bearer').Strategy;
// Authentication
Passport.use( new PassportBearerStrategy( function( sessionId, cb ) {
    Auth.getSession( sessionId, function( userId ){
        cb( ( !!userId ), { userId: userId }, userId );
    });
}));

server.get(
    '/user',
    Passport.authenticate( 'bearer' ),
    function( req, res, next ){
        console.info( req.user  ); // undefined
        respond( res, {} );
        return next();
    }
);

Все работает за исключением того, что в функции ниже, req.user является undefined, Я прочитал, что вы должны включить сеанс. Но я уже реализовал свою собственную сессию, мне не нужна другая.
Все, что мне нужно, это, если я скажу cb( true, user ) это прибывает в функцию ниже.

Есть ли способ решить это?

1 ответ

Решение

Как я получаю из кода в этом примере обратного вызова cb следует стандартному формату узла, поэтому получает ошибку в качестве первого аргумента, а пользователь - в качестве второго. Я думаю, что обратный вызов - это то, что устанавливает req.user и управляет всеми шаблонами после аутентификации. Вы должны попытаться вызвать его как `cb(null, user)

Другие вопросы по тегам