0

例如,假设我有两个功能,一个需要 Google 通讯录,一个需要 Google 日历。

我们还假设第一个功能被大量使用,因此请求用户授权两个身份验证范围会导致显着下降率。

如果我为绑定了联系人身份验证范围的用户存储访问令牌,那么稍后我为该用户请求额外的身份验证范围日历时会发生什么?我是否会取回仅包含日历范围凭据的新令牌?

LiveConnect 表示,取代现有作用域的作用域会产生一个具有伞形作用域的新令牌,而旧令牌会失效。

4

1 回答 1

1

假设您正在谈论授权代码或隐式授权类型流,则需要用户授权新范围。

用户代理将被发送到具有(现在)所需范围的授权服务器的授权端点。所需范围应包括您需要的全套范围(旧的和新的)。用户将看到请求的范围,然后对其进行授权。对于 authorization_code 授权类型,这会导致授权代码交换为表示用户同意范围的新访问令牌。隐式只会在 URL 片段中返回一个新的访问令牌。无论如何,这个新的访问令牌将取代现有的。

如果您涉及刷新令牌 - 在请求带有刷新令牌的新访问令牌时,您可以指定请求的范围。但是,该范围必须是原始范围的子集(请参阅:OAuth 2.0 规范第 6 节) - 未经用户同意无法扩展它(假设上述流程)。

于 2012-04-12T15:52:30.647 回答