如何从 GitHub OAuth 访问令牌获取范围信息以执行增量授权

问题描述 投票:0回答:1

使用 GitHub OAuth API 执行授权时,用户会通过临时代码参数重定向回某个应用程序

临时代码参数可以交换访问令牌,发送 POST 请求到

https://github.com/login/oauth/access_token
,如 API 参考

中所述

该端点的响应包含访问令牌以及其中的

scopes
,话虽如此,请考虑以下流程:

  • 用户使用基础范围授权 GitHub OAuth
  • GitHub OAuth 返回临时代码
  • 检索访问令牌的临时代码
  • (增量授权案例)用户想要访问我的产品中需要存储库范围的功能,那么应用程序需要向用户发出信号,需要使用先前授予的范围和附加范围再次执行授权

基于最后一步,为了向用户发出再次需要授权的信号,需要在已授予并包含在访问令牌中的范围与现在需要的范围之间进行比较

是否可以访问其他 API 路由来获取有关该用户的访问令牌的更多信息?作为另一个参考,OAuth 规范将其称为“令牌自省端点”:https://datatracker.ietf.org/doc/html/rfc7662

oauth-2.0 oauth github-api github-oauth
1个回答
0
投票

在 GitHub 的 OAuth API 中,没有如 RFC 7662 中指定的内置令牌自省端点来直接获取有关访问令牌的详细信息。

但是,您可以通过点击 https://api.github.com/user 端点来收集一些信息。当您使用

Authorization
标头中的访问令牌进行此 API 调用时,响应将包含
X-OAuth-Scopes
标头
。此标头包含已授予令牌的范围的逗号分隔列表。要查找应用程序授予的范围和所需范围之间的差异,您必须在两组之间进行手动比较(差异)。

© www.soinside.com 2019 - 2024. All rights reserved.