使用 Google 和 Azure 进行登录,效果很好。
但是我必须使用 //@ts-ignore 因为它会引发一个我不知道如何修复的严重错误。
谷歌
authRouter.get('/google',
passport.authenticate('google', { scope: ['profile', 'email'] }));
天蓝色
authRouter.get("/ms", (req: Request, res: Response, next: NextFunction) => {
//@ts-ignore
passport.authenticate('azure', { session: false, response: res, failureRedirect: "/" })(req, res, next);})
所以没有//@ts-ignore
评论装饰器,我得到一个过载错误说
'"azure"' 类型的参数不能分配给 '"google"' 类型的参数。
我尝试制作 Passport 的多个实例,{ Passport }
然后制作 a const google = new Passport()
andconst ms = new Passport()
但这并不能解决问题。
我不喜欢这样欺骗 TS 编译器,而且我做错了,所以我想得到纠正。
(如果有人感到困惑,我将我的 OIDC 策略命名为“azure”,而不是保留默认的“azuread-openidconnect”)