用于 OAuth 授权的 REST API 端点
使用 REST API 与 GitHub Apps 的 OAuth 应用和 OAuth 授权进行交互
关于 GitHub Apps 的 OAuth 应用和 OAuth 授权
您可以使用这些端点来管理 OAuth 应用或 GitHub Apps 用于访问 GitHub.com 上用户帐户的 OAuth 令牌。
OAuth 应用的令牌以 gho_
为前缀,而 GitHub Apps 的 OAuth 令牌(用于代表用户进行身份验证)以 ghu_
为前缀。您可以对这两种类型的 OAuth 令牌使用以下端点。
删除应用授权
OAuth 和 GitHub 应用所有者可以撤销其应用和特定用户的授权。您必须提供有效的 OAuth access_token
作为输入参数,然后将删除该令牌所有者的授权。删除应用的授权也会删除与该应用关联的所有用户的 OAuth 令牌。删除后,该应用将无法访问用户的帐户,并且将不再列在 GitHub 中的应用授权设置屏幕 上。
“删除应用授权”的基本身份验证
您必须使用 基本身份验证 来使用此端点。使用应用程序的 client_id
作为用户名,使用 client_secret
作为密码。
“删除应用授权”的参数
名称、类型、描述 |
---|
accept string 建议设置为 |
名称、类型、描述 |
---|
client_id string 必需GitHub 应用程序的客户端 ID。 |
名称、类型、描述 |
---|
access_token string 必需用于向 GitHub API 进行身份验证的 OAuth 访问令牌。 |
“删除应用授权”的 HTTP 响应状态码
状态码 | 描述 |
---|---|
204 | 无内容 |
422 | 验证失败或端点已被垃圾邮件攻击。 |
“删除应用授权”的代码示例
请求示例
curl -L \ -X DELETE \ -H "Accept: application/vnd.github+json" \ -u "<YOUR_CLIENT_ID>:<YOUR_CLIENT_SECRET>" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/applications/Iv1.8a61f9b3a7aba766/grant \ -d '{"access_token":"e72e16c7e42f292c6912e7710c838347ae178b4a"}'
响应
状态:204
检查令牌
具有 OAuth 授权的 OAuth 应用程序和 GitHub 应用程序可以使用此 API 方法来检查 OAuth 令牌的有效性,而不会超过针对失败登录尝试的正常速率限制。此特定端点的身份验证方式不同。无效令牌将返回 404 NOT FOUND
。
“检查令牌”的基本身份验证
您必须使用 基本身份验证 来使用此端点。使用应用程序的 client_id
作为用户名,使用 client_secret
作为密码。
“检查令牌”的参数
名称、类型、描述 |
---|
accept string 建议设置为 |
名称、类型、描述 |
---|
client_id string 必需GitHub 应用程序的客户端 ID。 |
名称、类型、描述 |
---|
access_token string 必需OAuth 或 GitHub 应用程序的 |
“检查令牌”的 HTTP 响应状态码
状态码 | 描述 |
---|---|
200 | 好的 |
404 | 资源未找到 |
422 | 验证失败或端点已被垃圾邮件攻击。 |
“检查令牌”的代码示例
请求示例
curl -L \ -X POST \ -H "Accept: application/vnd.github+json" \ -u "<YOUR_CLIENT_ID>:<YOUR_CLIENT_SECRET>" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/applications/Iv1.8a61f9b3a7aba766/token \ -d '{"access_token":"e72e16c7e42f292c6912e7710c838347ae178b4a"}'
响应
状态:200
{ "id": 1, "url": "https://api.github.com/authorizations/1", "scopes": [ "public_repo", "user" ], "token": "ghu_16C7e42F292c6912E7710c838347Ae178B4a", "token_last_eight": "Ae178B4a", "hashed_token": "25f94a2a5c7fbaf499c665bc73d67c1c87e496da8985131633ee0a95819db2e8", "app": { "url": "http://my-github-app.com", "name": "my github app", "client_id": "Iv1.8a61f9b3a7aba766" }, "note": "optional note", "note_url": "http://optional/note/url", "updated_at": "2011-09-06T20:39:23Z", "created_at": "2011-09-06T17:26:27Z", "fingerprint": "jklmnop12345678", "expires_at": "2011-09-08T17:26:27Z", "user": { "login": "octocat", "id": 1, "node_id": "MDQ6VXNlcjE=", "avatar_url": "https://github.com/images/error/octocat_happy.gif", "gravatar_id": "", "url": "https://api.github.com/users/octocat", "html_url": "https://github.com/octocat", "followers_url": "https://api.github.com/users/octocat/followers", "following_url": "https://api.github.com/users/octocat/following{/other_user}", "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", "organizations_url": "https://api.github.com/users/octocat/orgs", "repos_url": "https://api.github.com/users/octocat/repos", "events_url": "https://api.github.com/users/octocat/events{/privacy}", "received_events_url": "https://api.github.com/users/octocat/received_events", "type": "User", "site_admin": false } }
重置令牌
OAuth 应用程序和具有 OAuth 授权的 GitHub 应用程序可以使用此 API 方法重置有效的 OAuth 令牌,无需最终用户参与。应用程序必须保存响应中的“token”属性,因为更改会立即生效。无效令牌将返回404 NOT FOUND
。
“重置令牌”的基本身份验证
您必须使用 基本身份验证 来使用此端点。使用应用程序的 client_id
作为用户名,使用 client_secret
作为密码。
“重置令牌”的参数
名称、类型、描述 |
---|
accept string 建议设置为 |
名称、类型、描述 |
---|
client_id string 必需GitHub 应用程序的客户端 ID。 |
名称、类型、描述 |
---|
access_token string 必需OAuth 或 GitHub 应用程序的 |
“重置令牌”的 HTTP 响应状态代码
状态码 | 描述 |
---|---|
200 | 好的 |
422 | 验证失败或端点已被垃圾邮件攻击。 |
“重置令牌”的代码示例
请求示例
curl -L \ -X PATCH \ -H "Accept: application/vnd.github+json" \ -u "<YOUR_CLIENT_ID>:<YOUR_CLIENT_SECRET>" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/applications/Iv1.8a61f9b3a7aba766/token \ -d '{"access_token":"e72e16c7e42f292c6912e7710c838347ae178b4a"}'
响应
状态:200
{ "id": 1, "url": "https://api.github.com/authorizations/1", "scopes": [ "public_repo", "user" ], "token": "ghu_16C7e42F292c6912E7710c838347Ae178B4a", "token_last_eight": "Ae178B4a", "hashed_token": "25f94a2a5c7fbaf499c665bc73d67c1c87e496da8985131633ee0a95819db2e8", "app": { "url": "http://my-github-app.com", "name": "my github app", "client_id": "Iv1.8a61f9b3a7aba766" }, "note": "optional note", "note_url": "http://optional/note/url", "updated_at": "2011-09-06T20:39:23Z", "created_at": "2011-09-06T17:26:27Z", "fingerprint": "jklmnop12345678", "expires_at": "2011-09-08T17:26:27Z", "user": { "login": "octocat", "id": 1, "node_id": "MDQ6VXNlcjE=", "avatar_url": "https://github.com/images/error/octocat_happy.gif", "gravatar_id": "", "url": "https://api.github.com/users/octocat", "html_url": "https://github.com/octocat", "followers_url": "https://api.github.com/users/octocat/followers", "following_url": "https://api.github.com/users/octocat/following{/other_user}", "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", "organizations_url": "https://api.github.com/users/octocat/orgs", "repos_url": "https://api.github.com/users/octocat/repos", "events_url": "https://api.github.com/users/octocat/events{/privacy}", "received_events_url": "https://api.github.com/users/octocat/received_events", "type": "User", "site_admin": false } }
删除应用程序令牌
OAuth 或 GitHub 应用程序所有者可以撤销 OAuth 应用程序或具有 OAuth 授权的 GitHub 应用程序的单个令牌。
“删除应用程序令牌”的基本身份验证
您必须使用 基本身份验证 来使用此端点。使用应用程序的 client_id
作为用户名,使用 client_secret
作为密码。
“删除应用程序令牌”的参数
名称、类型、描述 |
---|
accept string 建议设置为 |
名称、类型、描述 |
---|
client_id string 必需GitHub 应用程序的客户端 ID。 |
名称、类型、描述 |
---|
access_token string 必需用于向 GitHub API 进行身份验证的 OAuth 访问令牌。 |
“删除应用程序令牌”的 HTTP 响应状态代码
状态码 | 描述 |
---|---|
204 | 无内容 |
422 | 验证失败或端点已被垃圾邮件攻击。 |
“删除应用程序令牌”的代码示例
请求示例
curl -L \ -X DELETE \ -H "Accept: application/vnd.github+json" \ -u "<YOUR_CLIENT_ID>:<YOUR_CLIENT_SECRET>" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/applications/Iv1.8a61f9b3a7aba766/token \ -d '{"access_token":"e72e16c7e42f292c6912e7710c838347ae178b4a"}'
响应
状态:204