我在使用nodejs + express编写的服务中使用谷歌登录,并使用passport-google-oauth登录谷歌。 在我的网站上,我有一个'登录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
})
})
但它似乎不起作用。
答案 0 :(得分:3)
事实证明,提示参数位于错误的位置。而不是把它作为GoogleStrategy构造函数的参数,我应该把它放入passport.authenticate()中间件的args中
router.get('/', passport.authenticate('google', {
scope: SCOPES,
prompt: 'select_account'
}))