Github Api 授权问题

Lau*_*ris 5 javascript authorization github-api axios

我正在尝试使用 Github Api 进行授权请求,传递用户名和密码。但它不起作用,我收到 401 状态代码。

文档中有一部分说

To use Basic Authentication with the GitHub API, simply send the username and password associated with the account.
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

this.api
        .post('/user', { username: 'Example', password: '1234' })
        .then(res => resolve(res.data))
        .catch(err => reject(err));
Run Code Online (Sandbox Code Playgroud)

Gor*_*nov 4

不确定您是否打算使用 Github API 提供的基本身份验证。如果是这种情况,我认为你应该使用 Axiosauth标头:

axios.get('https://example.com', {
  auth: { user: "username", password: "password" }
});
Run Code Online (Sandbox Code Playgroud)

Axios 文档是这样说的:

  // `auth` 指示应使用 HTTP 基本身份验证,并提供凭据。
  // 这将设置一个“Authorization”标头,覆盖任何现有的
  // 您使用“headers”设置的“Authorization”自定义标头。
  // 请注意,只有 HTTP Basic auth 可以通过此参数进行配置。
  // 对于不记名令牌等,请改用“Authorization”自定义标头。
  授权:{
    用户名:'janedoe',
    密码:'s00pers3cret'
  },

还有另一种方法可以手动设置授权标头,如下所示:

axios.get('https://example.com/', {
 headers: {
   Authorization: 'Basic ' + Base64.encode('username' + ':' + 'password');
 }
})
Run Code Online (Sandbox Code Playgroud)

最后一点是弃用即将到来:

弃用通知:GitHub 将停止对 API 进行密码身份验证。您现在必须使用 API 令牌(例如 OAuth 访问令牌、GitHub 应用程序安装访问令牌或个人访问令牌)对 GitHub API 进行身份验证,具体取决于您需要使用令牌执行的操作。

考虑使用令牌而不是用户名和密码。