0

在我的网站上有 Google+ 和 YouTube 的授权流程。用户可以在我的网站上将他的 Google+ 或 YouTube 帐户添加到他的个人资料中。

范围

  1. 谷歌+:https://www.googleapis.com/auth/plus.login

  2. YouTube:https://www.googleapis.com/auth/youtube.readonly

当用户将两者都添加到他的个人资料时,子令牌页面上有两个条目。一个用于 Google+ 登录,另一个用于 YouTube。

场景

用户想从我网站上的个人资料中删除 Youtube 帐户。=> 我删除数据库中的条目并使用 GoogleAuth 函数 ( revokeToken()) 撤销令牌。在我撤销 YouTube 令牌后,子令牌页面(Google+ 登录)上只剩下一个条目。

但是,当用户只想从我网站上的个人资料中删除 Google+ 并且我使用相同的 GoogleAuth 功能 ( revokeToken()) 时,两个条目都将被撤销,并且子令牌页面上没有条目。

为什么 YouTube 条目也会被撤销?我只想撤销 Google+ 登录。

这个问题有解决方案吗?

编辑 (06.08.2013)

当我在 上检查令牌时https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=TOKEN,我得到以下结果:

1. YouTube 令牌:

"issued_to": "......",

"audience": "......",

"scope": "https://www.googleapis.com/auth/youtube.readonly",

"expires_in": 3272,

"access_type": "offline"

2.谷歌+令牌

"issued_to": "......",

 "audience": "......",

 "user_id": "......",

 "scope": "https://www.googleapis.com/auth/plus.login",

 "expires_in": 3093,

 "access_type": "offline"

令牌有不同的范围,但为什么一旦我撤销了 Google+ 令牌,YouTube 令牌就会被撤销?

4

1 回答 1

0

https://www.googleapis.com/auth/plus.login有一个政策要求开发者实现断开连接。要断开连接,您需要撤销您的访问令牌,这会撤销您的应用程序为该用户请求的所有 Google 范围。

我不确定为什么您的应用程序会在一个场合只请求https://www.googleapis.com/auth/youtube.readonly,然后在另一个场合请求https://www.googleapis.com/auth/plus.login场合。

更好的方法可能是根据用户启用的内容请求具有所需范围的完整列表的单个访问令牌。

于 2013-08-06T11:53:48.023 回答