在我的网站上有Google+和YouTube的授权流程。 用户可以将自己的Google+或YouTube帐户添加到我网站上的个人资料中。
作用域:
Google+:https://www.googleapis.com/auth/plus.login
YouTube:https://www.googleapis.com/auth/youtube.readonly
当用户将两者都添加到他的个人资料中时,subtokens page上有两个条目。 一个用于Google+登录,另一个用于YouTube。
方案:
用户想要从我网站上的个人资料中删除Youtube帐户。
=>我删除了数据库中的条目,并使用GoogleAuth函数(revokeToken()
)撤消了令牌。
撤销YouTube令牌后,subtokens page(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。 Google+令牌
"issued_to": "......", "audience": "......", "user_id": "......", "scope": "https://www.googleapis.com/auth/plus.login", "expires_in": 3093, "access_type": "offline"
令牌的范围不同,但为什么撤销Google+令牌后,YouTube令牌会被撤销?
答案 0 :(得分:0)
https://www.googleapis.com/auth/plus.login有policy,要求开发人员实施断开连接。要断开连接,您需要撤消访问令牌,撤消您的应用为该用户请求的所有Google范围。
我不确定为什么您的应用程序一次只请求https://www.googleapis.com/auth/youtube.readonly,然后单独请求https://www.googleapis.com/auth/plus.login。
更好的方法可能是根据用户启用的内容,使用您需要的完整范围列表来请求单个访问令牌。