在ExpressJs上访问当前用户 - Passport

时间:2016-07-24 21:54:09

标签: express passport.js

我正在使用expressJs和passportjs(本地策略)创建后端应用以保护一些路由。 我需要在每个数据库查询中添加当前用户的信息,因此我们只向每个用户公开相关信息。 我知道您可以访问当前用户检查req.user的信息,但这将涉及通过我的所有调用堆栈将用户信息(甚至请求)作为参数传递,我发现它有点不方便。

是否在最后一层(准备sql语句的层)上获取用户信息而不在参数上添加它?

感谢。

2 个答案:

答案 0 :(得分:2)

为什么不通过int i = T.access$t(new T());获取最后一层的用户信息?由于您使用的是本地护照,因此您可以通过访问id在上一个数据库查询中按ID查询用户。不需要参数。

req.user.id

答案 1 :(得分:1)

您可以将护照的done功能作为用户对象的第二个参数传递给您的自定义数据,如下所示:

done(null, {id: 1, name: 'John'});

req.user将返回{id: 1, name: 'John'}