我正在使用oauth访问谷歌提供的不同服务。我能够根据每个服务生成令牌。但我想生成一个令牌来使用谷歌的多个服务。有人能告诉我解决这个问题的办法吗?
https://developers.google.com/accounts/docs/OAuth2
根据Google OAuth2文档,可以通过设置多个范围来实现这一点,但请注意,这不是一种愉快的体验。
提出请求时,将scope参数设置为多个scope,每个scope由一个空格分隔。
示例:"https://www.googleapis.com/auth/userinfo.profilehttps://www.googleapis.com/auth/userinfo.emailhttps://www.google.com/m8/feeds"
您当前可以在此处找到作用域列表:https://developers.google.com/gdata/faq
不幸的是,API访问不是相加的,这意味着,如果您请求Google Contacts API的访问令牌,那么稍后当同一应用程序请求Google Profile API的访问令牌时,您将得到两个访问令牌,并且这两个令牌都不能用于访问另一个API。脸书至少有礼貌地给你一个单一的访问令牌,允许你访问迄今为止授予的所有权限。
正因为如此,你不得不跟踪多个访问令牌(这是一场可怕的噩梦,因为它们很快就会过期),或者提前要求你的所有权限,这是一个用户体验灾难。
如果你想进行紧密的、多方面的集成,Google API是支离破碎的,目前设置为失败的。