当前位置: 首页 > 知识库问答 >
问题:

Github Api授权问题

曾瀚昂
2023-03-14

我试图用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));

共有3个答案

羊舌兴文
2023-03-14

基本身份验证要求您在ajax请求中添加一个标头,该标头会发送到GitHub API。这已经在use-basic-验证-with-jquery-and-ajax中得到了回答。

徐佐
2023-03-14

请注意,如果您的帐户已激活2FA(双因素身份验证),则您需要使用PAT(个人访问令牌)作为密码。

curl --header 'Authorization: token INSERTACCESSTOKENHERE' 
--header 'Accept: application/vnd.github.v3.raw' 
--remote-name 
--location https://api.github.com/...

请参见"传递带有axios POST请求的标头"

const headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/vnd.github.v3.raw',
  'Authorization': 'token INSERTACCESSTOKENHERE'
}

axios.post(url, data, {
    headers: headers
  })
  .then((response) => {
    dispatch({
      type: yourEvent,
      data: response.data[0]
    })
  })
  .catch((error) => {
    dispatch({
      type: yourError
    })
  })
淳于熙云
2023-03-14

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

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

以下是Axios文档的内容:

  // `auth` indicates that HTTP Basic auth should be used, and supplies credentials.
  // This will set an `Authorization` header, overwriting any existing
  // `Authorization` custom headers you have set using `headers`.
  // Please note that only HTTP Basic auth is configurable through this parameter.
  // For Bearer tokens and such, use `Authorization` custom headers instead.
  auth: {
    username: 'janedoe',
    password: 's00pers3cret'
  },

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

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

最后一点值得注意的是,反对声即将到来:

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

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

 类似资料:
  • 问题内容: 我正在为iOS 8开发一个Swift代码。我正在尝试做一些涉及位置的事情,因此我在swift视图控制器文件中实现了以下内容: 但是,我似乎无法使此代码正常工作。它不会保存我对位置使用的偏好。它甚至不提示我允许访问位置。我尝试更新我的info.plist。但这不起作用。顺便说一句,如果我始终在模拟器的隐私设置中选择,那么如果我立即切换回该应用程序,它将起作用。有人可以帮忙吗?我确定那是问

  • 在spotify api的授权步骤中,我完全迷失了方向 我需要提出一个类似于邮递员的请求: 具有包含client_id和client_secret(api 凭据)的标头 这些是根据授权流完成的(在他们的授权指南中的第四个-(隐式授权流(客户凭证流))本页最后一个:https://developer.spotify.com/documentation/general/guides/authoriza

  • 我想从我的android应用程序中读取来自Google Sheets的表格。我想通过Google Sheets API来做到这一点。我将工作表声明为公共,创建了API密钥并尝试发送服务调用: 我有401密码。答复: 请求缺少必需的身份验证凭据。需要OAuth 2访问令牌、登录cookie或其他有效的身份验证凭据。看见https://developers.google.com/identity/si

  • 我正在用Spring MVC构建一个CRM系统。现在我为系统添加了REST支持,但是Spring Security出于某种原因将允许角色为“employee”的未经授权的用户访问POST方法(在系统中创建一个新客户)。在表单和身份验证方面,一切都能正常工作。只是由于某种原因授权失败,特别是对于RESTController。 我使用PostgreSQL存储客户和用户,并进行身份验证。 注意:我使用“

  • 我想更好地理解隐式授权流和授权代码授权流之间的区别,因为我不确定我目前的理解是否正确。 隐式授权流主要由前端应用程序用于验证用户身份吗? 隐式授权流是否只需要一个client_id、用户名和密码来进行身份验证,换句话说,永远不会发送client_secret? 授权码只是一个短期令牌吗? 将授权码交换为访问令牌后,客户端可以访问用户帐户多长时间?具体地说,如果客户端是一个长时间运行的脚本,那么用户

  • 我遇到了使用文档签名 API 的第一个障碍,需要一些帮助。 我将docusignrestapi集合导入到Postman中。我设置了iKey、iSec、encodedKeys和codeFromUrl变量。 当尝试发送'01-授权代码授予访问令牌'post API时,我每次都得到以下响应。 我尝试从Postman中删除所有内容,包括环境,并从DocuSign中删除该应用程序,然后重新开始,以便我的所有