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)