Oauth 2.0 第三方网站如何知道我对身份验证服务器上的数据拥有经过身份验证的访问权限?

Oauth 2.0 第三方网站如何知道我对身份验证服务器上的数据拥有经过身份验证的访问权限?,oauth-2.0,oauth,google-oauth,Oauth 2.0,Oauth,Google Oauth,故事是这样的: 我去reddit.com。它为我提供了通过谷歌登录的选项。我点击谷歌按钮 新选项卡将打开url:,其中包含少量其他查询参数 我允许reddit在google认证服务器上访问我的数据 带有的选项卡将自动关闭 我在步骤1中打开的Reddit网页神奇地知道我已经在google上进行了身份验证并刷新了该网页(请注意,除非我在google上进行了身份验证,否则Reddit网页不会刷新) 我已登录 现在,我已经阅读了OAuth流,我知道流中使用的重定向uri由身份验证服务器用于在最终用户进行

故事是这样的:

  • 我去reddit.com。它为我提供了通过谷歌登录的选项。我点击谷歌按钮
  • 新选项卡将打开url:,其中包含少量其他查询参数
  • 我允许reddit在google认证服务器上访问我的数据
  • 带有的选项卡将自动关闭
  • 我在步骤1中打开的Reddit网页神奇地知道我已经在google上进行了身份验证并刷新了该网页(请注意,除非我在google上进行了身份验证,否则Reddit网页不会刷新)
  • 我已登录
  • 现在,我已经阅读了OAuth流,我知道流中使用的重定向uri由身份验证服务器用于在最终用户进行身份验证后重定向最终用户

    以下几点让我感到困惑:

    我打开的reddit页面(在另一个选项卡中)如何知道我何时在身份验证服务器(本例中为google)上进行了身份验证,以及身份验证令牌如何传递到打开的reddit页面

    如您所见,重定向uri是

    我所期望的是:

    • 一旦我在谷歌上进行了身份验证,我的浏览器就会打开一个新的选项卡,其中包含url,以及谷歌在查询参数中给出的身份验证id
    • 因此,在整个过程中,总共会打开3个选项卡:我尝试登录的原始reddit页面(永远停留在登录页面上)、google认证屏幕(最终自动关闭)、我登录的新reddit主页
    reddit.com(客户端应用程序)和google(身份验证服务器)就是一个例子。当我通过oauth登录时,这种行为随处可见

    可能是我在这里遗漏的一些愚蠢的简单的东西