req.user 未定义
req.user is undefined
我想用 NodeJS+Restify 和 PassportJS 编写一个 REST-API 来进行身份验证。
当用户登录时,我生成一个 sessionId 并将其存储在我自己创建的会话中。
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 )
它到达下面的函数。
有什么办法可以解决吗?
正如我从 this example 中的代码中得到的那样,回调 cb
遵循标准节点格式,因此第一个参数是错误,第二个是用户。我认为回调是设置 req.user 和管理所有 post-auth 样板文件的原因。您应该尝试将其称为 `cb(null, user)
我想用 NodeJS+Restify 和 PassportJS 编写一个 REST-API 来进行身份验证。 当用户登录时,我生成一个 sessionId 并将其存储在我自己创建的会话中。
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 )
它到达下面的函数。
有什么办法可以解决吗?
正如我从 this example 中的代码中得到的那样,回调 cb
遵循标准节点格式,因此第一个参数是错误,第二个是用户。我认为回调是设置 req.user 和管理所有 post-auth 样板文件的原因。您应该尝试将其称为 `cb(null, user)