GitHub API v3调用/user/teams时不同token返回结果存在差异
问题根因与解决方案
这个问题是 GitHub 针对 OAuth 应用的组织访问限制机制导致的,和令牌本身的权限配置无关,具体排查解决步骤如下:
- 核心差异说明:个人访问令牌(PAT)属于用户个人生成的凭证,不受组织的第三方应用访问规则限制,所以可以正常拉取团队数据;但 OAuth 应用生成的令牌,哪怕已经被授予
read:org权限,也无法访问未对该 OAuth 应用开放授权的组织内的团队数据,这就是两个令牌返回结果不一致的核心原因。 - 验证方法:使用 OAuth 令牌调用以下接口,确认组织访问权限状态:
如果该接口返回空数组,即可确认是 OAuth 应用未获得对应组织的访问授权。curl -H "Authorization: bearer gho_123abc" 'https://api.github.com/user/memberships/orgs' - 解决方法:联系你所属组织的管理员,在组织设置的第三方访问配置页面,批准你所用的 OAuth 应用的访问请求即可;如果你是该 OAuth 应用的开发者,也可以在授权跳转流程中添加组织授权提示,引导用户授权时主动申请对应组织的访问权限。
内容的提问来源于stack exchange,提问作者dogman288
相关产品推荐
相关产品推荐

