当我已经拥有用户的刷新令牌,但他们与应用程序的会话不再处于活动状态时,是否可以使用 Google OAuth 对用户进行身份验证,而无需强制用户选择允许/拒绝(即是否可以"自动身份验证"),而无需强制用户选择允许/拒绝(即是否可以"自动身份验证")?
如:
- 用户正在使用其他计算机
- 用户在同一台计算机上使用不同的浏览器
- 用户的计算机在每次重新启动时都会重新映像/在重新启动时清除 cookie
- 我们的会话 Cookie 已过期
请注意,我已经设置了 approval_prompt=force,因为我需要刷新令牌。谢谢。
取决于你想要做什么... 无需用户交互即可使用刷新令牌为任何范围获取新的刷新令牌。 但是刷新令牌不能用于验证用户状态,它的全部意义是在用户不在时执行此操作。
如果您需要做的是测试用户是否存在,则必须进行某种身份验证交互,但有一个例外。如果您知道电子邮件地址并使用"openid 电子邮件"等范围执行 OpenID Connect 登录,并使用 login_hint 参数发送您知道的电子邮件,则如果该电子邮件用户存在并登录,则您的操作将成功,无需交互。 一些有用的细节在 https://developers.google.com/accounts/docs/OAuth2WebServer