Google OAuth检查用户是否从Google注销

时间:2019-03-11 07:35:29

标签: oauth google-oauth

使用Google OAuth登录用户后-是否可以检查以后的用户是否从Google注销?

场景:

  1. 用户登录了Google
  2. 用户使用mysite.com登录Google OAuth,登录状态在会话中存储了1年
  3. 用户已从Google注销,但忘记了从mysite.com退出
  4. 一个星期之后,有人偷了用户的笔记本电脑。小偷将无法使用Google,但将能够重新使用mysite.com上已登录的用户会话

我想知道如何预防这种情况?

我不想给用户带来负担-从mysite.com注销用户,并要求每天再次登录。

将改为使用自动的东西,例如:

  • 使用Google OAuth登录时,您会获得某种ID
  • 每天,您都可以通过调用
  • 来验证原始会话是否仍在活动

google.com/api/is-original-session-still-active?id=ID

2 个答案:

答案 0 :(得分:1)

注意:我怀疑您的术语不正确,我怀疑您是在使用Openid connect而不是OAuth2来登录用户。但是我会基于Oauth2回答这个问题,因为这就是您所说的。

Oauth2

Oauth2用于授予应用程序对用户数据的访问权限。使用oauth2令牌时,您代表用户。使用Oauth2令牌时,实际上没有用户交互。

如果用户同意您的应用程序访问其数据,则将获得访问令牌和刷新令牌。访问令牌可以使用一个小时。刷新令牌的寿命很长,只要用户不删除您的同意并且您至少每六个月使用一次,就可以使您访问用户数据。

由于Oauth2没有用户交互,因此无法使用它来查看用户是否已登录其帐户。实际上,没有Google API可以为您提供此信息。这将IMO视为私人用户信息,而不是google应该与第三方应用程序共享的信息。

建议

您可能需要考虑对应用程序进行一些更改。

  1. 实现注销无处不在。如果用户更改了密码,则他们登录的所有设备都应自动重新进行身份验证。
  2. 您的会议应该只持续一两个星期,并且您应该启用滑动。
  3. 告诉您的用户删除您的应用程序对其数据的同意,这也将迫使他们必须重新登录。

答案 1 :(得分:1)

要专门了解可能会影响应用程序用户的用户帐户安全事件(如果您的应用程序使用Google登录),请考虑注册您的应用程序以接收跨帐户保护事件[1]。

[1] https://developers.google.com/identity/risc