CJ *_*son 3 google-api google-api-php-client
我们正在使用混合身份验证流程,以便通过JS请求客户端进行增量授权,并将结果code
传递给我们的API服务器进行处理.
我们需要的是:
通过刷新令牌或访问令牌,用户可以使用哪些范围
一种在$client->authenticate($code)
响应中包含当前作用域的方法(因此我们可以使用刷新令牌存储它们)
一种确定Google响应中授予的范围的方法$client->authenticate($code)
(因此我们可以将其附加到该用户的存储列表中)
我们希望在集成页面上显示一个列表,供用户选择加入每个功能(日历,联系人,驱动器)并显示已启用哪些功能的清晰列表,以及提示他们是否访问尚未授权的功能特征.除此之外,我无法相信这不是"一件事".
和你在同一个位置...如果你点击:https://www.googleapis.com/oauth2/v1/tokeninfo?access_token =
它将返回一个JSON响应,该响应具有"scope"参数,该参数是访问令牌的所有已授予范围的空格分隔列表.
虽然我意识到这现在有点旧了,但对于那些从现在开始通过 Google 发现这一点的人来说,可能值得注意的是,从 PHP 客户端库方法等返回的访问令牌包实际上包含活动范围的$client->fetchAccessTokenWithAuthCode($_GET['code'])
列表,带有关键“范围”。您应该能够解析它,而不需要进一步的 API 调用。
以下是我的访问令牌包的示例:
{
"access_token": "xxxxxxxxxxx",
"expires_in": 3600,
"refresh_token": "xxxxxxxxxxxx...... ",
"scope": "https:\/\/www.googleapis.com\/auth\/userinfo.profile openid https:\/\/www.googleapis.com\/auth\/userinfo.email",
"token_type": "Bearer",
"id_token": "xxxxxxxxx...... ",
"created": 1576300135
}
Run Code Online (Sandbox Code Playgroud)
注意上面的“scope”参数。
这似乎没有在任何地方记录。
和您一样,几年后,我还没有找到提供此功能的客户端库方法;你是对的,这看起来相当基本(实际上,比较两个范围列表的函数是理想的,包括考虑“个人资料”和“电子邮件”范围的扩展,提示谷歌人员!)。
[对于切换到 PHP 的示例表示歉意,但我怀疑访问令牌捆绑格式是相同的,因此应该可以采用类似的方法]
归档时间: |
|
查看次数: |
716 次 |
最近记录: |