Google 从 Google 注销后,oAuth 不会使令牌字符串无效

Google oAuth doesn't invalidate token string after log out from Google

我使用 Google oAuth 登录我的网站。这对于登录非常有效。但它不适用于注销。

我在下面做,

  1. 从 Google API
  2. 获取 idTokenString
  3. 在我的会话中保留它
  4. 通过 GoogleIdTokenVerifier
  5. 为每个请求验证此令牌

当用户执行以下操作时 google 不会使令牌无效,而是发送成功响应。

  1. 用户登录Google
  2. 通过允许访问访问我的网站
  3. 用户从 google
  4. 注销
  5. 用户访问我的网站,
  6. 我的系统发送令牌进行验证。
  7. Google 给我 idToken,所以我的系统允许用户访问我的网站

当用户关闭浏览器并返回时,令牌失效,我的系统不允许。但是在不关闭浏览器的情况下它不起作用

这是预期的行为。如果用户正在注销 google,它也不会从您的应用程序注销。 但是,如果您想从您的应用程序注销用户并希望 google 也被注销,则有一个解决方法。您只需以编程方式清除浏览器中的所有 cookie,或者您可以从他们的 Google 服务注销按钮之一动态构建注销 url,然后使用 img 元素或脚本标记调用它你的申请。

<script type="text/javascript" 
    src="https://mail.google.com/mail/u/0/?logout&hl=en" />

<img src="https://mail.google.com/mail/u/0/?logout&hl=en" />

window.location = "https://mail.google.com/mail/u/0/?logout&hl=en";