初始身份验证后执行Google Federated Login/oAuth2

M S*_*kel 14 openid oauth google-api access-token

我正在尝试支持"混合"联合登录和oAuth2(使用本文档中的逻辑)的Web服务,该服务将:

  1. 支持使用我网站上的Google帐户登录.也就是说,从文档中:您还可以选择使用Google的身份验证系统来为您的应用程序外包用户身份验证.这可以消除创建,维护和保护用户名和密码存储的需要.
  2. 访问用户的Google Analytics.

以下是我所做的步骤.

  1. 我向https://accounts.google.com/o/oauth2/auth提出了我想要访问的范围(Google Analytics)的请求.
  2. 我被重定向到谷歌,它有我的图标和我请求访问的范围.我授予访问权限.
  3. 我被重定向回到回调页面.
  4. 我得到的令牌(访问和刷新),以及一个巨大的id_token字符串(我不知道),所有这些信息存储在我的数据库.
  5. 然后,我打电话给https://www.googleapis.com/oauth2/v1/userinfo?access_token=xxxyyyzzz获取用户的电子邮件和姓名,并将此信息存储在我的数据库中.我还注意到它返回一个id字段,据我所知,它永远不会改变,我认为是某种独特的标识符.我也存储了这个.

问题:如果我在我的Google帐户中转到授权访问您的Google帐户部分,则表明我的网站可以访问"Google Analytics.但是,它没有说使用您的Google帐户登录.这就是我想要的我认为使用逻辑会启用使用您的Google帐户登录.我做错了什么?谷歌的适用电话是什么,以便用户可以登录我的网站?

Rya*_*ton 1

如果您的网站可以使用 OAuth 访问您的通讯录或分析等内容,您将永远不会看到“使用您的 Google 帐户登录”。我很确定只有当您仅使用 OpenID(而不是 OAuth)进行登录时才会出现这种情况。

具体来说,OAuth 用于让您访问 API 来创建/更新/删除数据,而 OpenID 用于登录。

  • 是的,OAuth 用于登录,但“使用您的 Google 帐户登录”文本仅适用于 OpenID。无论对 OAuth 进行多少摆弄,该按钮都不会出现在您的 Google 帐户中。 (3认同)