javascript - Github API 授权问题
问题描述
我正在尝试使用 Github Api 进行授权请求,并传递用户名和密码。但它不工作,我得到 401 状态码。
在文档中有一部分说
To use Basic Authentication with the GitHub API, simply send the username and password associated with the account.
那是我的代码:
this.api
.post('/user', { username: 'Example', password: '1234' })
.then(res => resolve(res.data))
.catch(err => reject(err));
解决方案
不确定您是否打算使用 Github API 提供的基本身份验证。如果是这种情况,我认为您应该使用 Axiosauth
标头:
axios.get('https://example.com', {
auth: { user: "username", password: "password" }
});
这是 Axios 文档所说的:
// `auth` 表示应该使用 HTTP 基本身份验证,并提供凭据。 // 这将设置一个 `Authorization` 标头,覆盖任何现有的 // 您使用 `headers` 设置的 `Authorization` 自定义标头。 // 请注意,通过此参数只能配置 HTTP Basic auth。 // 对于 Bearer 令牌等,请改用 `Authorization` 自定义标头。 授权:{ 用户名:'janedoe', 密码:'s00pers3cret' },
还有另一种手动设置授权标头的方法,如下所示:
axios.get('https://example.com/', {
headers: {
Authorization: 'Basic ' + Base64.encode('username' + ':' + 'password');
}
})
最后一点是弃用即将到来:
弃用通知:GitHub 将停止对 API 的密码验证。您现在必须使用 API 令牌(例如 OAuth 访问令牌、GitHub 应用安装访问令牌或个人访问令牌)对 GitHub API 进行身份验证,具体取决于您需要对令牌执行的操作。
考虑使用令牌而不是用户名和密码。