我正在使用expressJs和passportjs(本地策略)创建后端应用以保护一些路由。 我需要在每个数据库查询中添加当前用户的信息,因此我们只向每个用户公开相关信息。 我知道您可以访问当前用户检查req.user的信息,但这将涉及通过我的所有调用堆栈将用户信息(甚至请求)作为参数传递,我发现它有点不方便。
是否在最后一层(准备sql语句的层)上获取用户信息而不在参数上添加它?
感谢。
答案 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'}