我创建了一个GitHub app。
我想使用GitHub应用程序对我的网站的用户进行身份验证。
我的理解是用户首先需要安装该应用程序,即我将用户链接到https://github.com/apps/myapp/installations/new。
用户安装应用程序后,使用installation_id
GET查询参数将用户重定向到我的应用程序的登录页面。
我使用此installation_id
和getInstallationAccessToken
创建安装令牌。
我的理解是,现在我需要使用OAuth对用户进行身份验证。因此,我将用户重定向到https://github.com/login/oauth/authorize?client_id=%GITHUB_APP_CLIENT_ID%。由于用户已经安装了我的应用,因此可以立即使用code
GET查询参数将用户重定向回到我的网页。
现在,我通过向https://github.com/login/oauth/access_token发出POST请求,使用code
参数将其交换为access_code
,即
POST https://github.com/login/oauth/access_token
accept: application/vnd.github.machine-man-preview+json
user-agent: octokit-request.js/2.4.2 Node.js/11.3.0 (macOS Mojave; x64)
authorization: token v1.796495[redacted]193c6f
content-type: application/json; charset=utf-8
Content-Length: 125
Accept-Encoding: gzip,deflate
Connection: close
Host: github.com
{
"client_id": "Iv1.239e8[redacted]2c07",
"client_secret": "c35f82e8ed[redacted]e248ba6969",
"code": "60ee71[redacted]b40f7d"
}
我的问题是,后者总是返回HTTP状态代码406响应(没有响应主体)。
我的问题: