如何强制Google OAuth2每次登录都要求重新输入密码?
解决方案
要强制用户每次通过Google OAuth2登录时都重新输入密码,你需要将prompt选项设置为login,而非当前使用的select_account consent。
为什么原有配置不生效?
consent仅用于请求用户授权应用访问其数据,不会触发身份重新验证;select_account仅提供账号选择界面,无法强制要求重新输入密码。
修改后的配置
provider( :google_oauth2, ENV.fetch('GOOGLE_OAUTH_CLIENT_ID'), ENV.fetch('GOOGLE_OAUTH_CLIENT_SECRET'), access_type: 'online', redirect_uri: "#{ENV.fetch('MY_HOST')}/auth/google_oauth2/callback", scope: 'email', prompt: 'login', # 关键修改:用login强制触发密码验证 image_aspect_ratio: 'square', image_size: 50 )
login参数会告知Google OAuth2服务:无论用户当前是否已登录Google账号,都必须展示登录界面要求输入密码完成身份验证,完全匹配你的需求。
内容的提问来源于stack exchange,提问作者Andrea Salicetti
相关产品推荐
相关产品推荐

