我正在尝试通过编写中间件并设置res.locals.currentUser = req.user来获取登录用户的信息,但是即使用户登录后req.user仍未定义。这是我的护照配置 //护照配置
app.use(require("express-session")({
secret:"ki keh sakde aa",
resave:false,
saveUninitialized:false
}));
app.use(passport.initialize());
app.use(passport.session());
passport.use(new localStrategy(User.authenticate()));
passport.serializeUser(User.serializeUser());
passport.deserializeUser(User.deserializeUser());
答案 0 :(得分:0)
我认为您不能在全局范围内从Passport访问用户对象,我相信您需要将其传递到要使用的路由。
我可能是错的,但在尝试使用户详细信息显示在所有页面的工具栏中时,我遇到了同样的问题。仍未找到适当的解决方法。
答案 1 :(得分:0)
尝试这样的事情
const userProfile = req.user;
res.locals = {
userProfile: JSON.stringify(userProfile, null, 2),
name: userProfile.displayName,
loggedInEmail: userProfile.emails[0].value,
isAuthenticated: req.isAuthenticated(),
};