有什么方法可以验证我的 github API 的 OAuth 令牌吗?我所说的“令牌”是指用户登录我的网站后获得的令牌。我使用 cookie 将其存储在客户端计算机上,但仅检查是否有令牌是不够的:我需要实际检查令牌是否有效。目前,这需要我请求信息,然后捕获错误。然而,这确实损害了我的速率和加载速度,因为 github API sloooow...我正在使用 Node.js、express 和 octonode 库。
我尝试查看 github API 文档,但它们很少。也许这与 OAuth 有关。
检查标头以查看您拥有哪些 OAuth 范围以及 API 操作接受哪些内容:
curl -H "Authorization: token OAUTH-TOKEN" https://api.github.com/users/codertocat -I
HTTP/1.1 200 OK
X-OAuth-Scopes: repo, user
X-Accepted-OAuth-Scopes: user
OAuth 应用程序可以使用特殊的 API 方法来检查 OAuth 令牌的有效性,而不会违反登录尝试失败的正常速率限制。
此特定端点的身份验证工作方式不同。访问时必须使用基本身份验证,其中用户名是 OAuth 应用程序的 client_id,密码是其 client_secret。无效的令牌将返回 404 NOT FOUND。
你可以用curl来做到这一点:
curl -u client_id:client_secret https://api.github.com/applications/:client_id/tokens/:token
或者,如果使用 fetch,请使用 Curl to Fetch。
这是根据对OP问题的有用评论编写的。
curl -H "Authorization: <TOKEN>" https://api.github.com/
或者
curl https://api.github.com/ -u <USERNAME>:<TOKEN>
检查令牌有一个新端点:
curl -L \
-X POST \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/applications/Iv1.8a61f9b3a7aba766/token \
-d '{"access_token":"e72e16c7e42f292c6912e7710c838347ae178b4a"}'