我正在寻找一种以编程方式登录伪造用户以进行开发的方法。最终目标是,我出于演示/开发目的打开该应用程序,并且有一个假用户被强制登录(在生产中已关闭)
目前,我正在运行3套中间件:
express-session
-设置会话和会话存储提供程序req.session.user
passport-saml
中间件,用于检查用户是否已通过身份验证,如果没有,则将其踢到SSO提供程序。 现在,我可以在1到3之间添加更多中间件,看看我的假用户在会话中是否存在(至少在请求期间)。但是,很明显,我没有做passport-saml
中间件希望看到的事情,因为无论我在会话中进行了什么设置,它总是认为我未经身份验证,并将我重定向到SSO提供程序。
中间件(express-session
)的第一层如下所示:
session({
secret: config.get('SESSION_SECRET'),
cookie: {
maxAge: 1000 * 60 * 60 * 24 * 7,
},
store,
resave: true,
saveUninitialized: false,
});
中间件的第二层看起来像这样:
(req: Request, _: Response, next: NextFunction): void => {
req.session.user = adminUser;
}
中间件的第三层只是护照中间件。
我确实尝试过在步骤2中呼叫req.logIn
,但收到一条消息,提示passport.initialize() middleware not in use
。