Passport JS Google OAuth2 - 强制登录或帐户选择器

Passport JS Google OAuth2 - force login or account chooser

我有 google 登录我的服务,用 nodejs+express 编写并使用 passport-google-oauth 登录 google。 在我的网站上,我有一个 'Sign in with Google' 按钮。我想要的是在用户点击此按钮时始终显示 google 登录名或帐户选择器。相反,如果我在浏览器中只登录了一个 google 帐户,我会立即使用该帐户登录服务。我在定义 GoogleStrategy 时尝试过类似的方法:

passport.use(new GoogleStrategy({
        clientID: GOOGLE_CLIENT_ID,
        clientSecret: GOOGLE_CLIENT_SECRET,
        callbackURL: REDIRECT_URL,
        passReqToCallback : true,
        prompt: 'select_account' // <--!!!
    }, function(req, accessToken, refreshToken, profile, done) {
       //callback stuff
   })

})

但是好像不行。

原来提示参数放错地方了。与其将它作为 GoogleStrategy 构造函数的参数,我应该将它放入 passport.authenticate() 中间件

的参数中
router.get('/', passport.authenticate('google', {
    scope: SCOPES,
    prompt: 'select_account'
}))