GitHub GraphQL 不断返回 POST https://api.github.com/graphql 401 错误

Posted

技术标签:

【中文标题】GitHub GraphQL 不断返回 POST https://api.github.com/graphql 401 错误【英文标题】:GitHub GraphQL keeps returning POST https://api.github.com/graphql 401 error 【发布时间】:2021-08-07 20:46:35 【问题描述】:

我已经尝试了几个小时来获取我的一些存储库的数据,但我不断收到此错误 '发布https://api.github.com/graphql 401'

我的代码

const githubData = 
  token: "my token",
  username: "mikechibuzor",
;

const body = 
  query: `query  
  user(login: "mikechibuzor")
    bio,
    avatarUrl,
    repositories(first: 20, orderBy: field: CREATED_AT, direction: DESC)
      nodes
        name,
        description,
        forkCount,
        languages(first: 100)
          nodes
            name
          
        
      
    
  

`,
;

const baseUrl = "https://api.github.com/graphql";
const headers = 
  'Authorization': 'bearer ' + githubData.token,
  "Access-Control-Allow-Origin": "*",
  "Content-Type": "application/json",
;

fetch(baseUrl, 
  method: "POST",
  Headers: headers,
  body: JSON.stringify(body),
  mode: "cors",
)
  .then((response) => response.json())
  .then((data) => console.log(data.data))
  .catch((err) => console.log(JSON.stringify(err)));

我做错了什么?

【问题讨论】:

我现在要假设你 401 是什么意思。也许看看有关身份验证的文档 - docs.github.com/en/rest/overview/… 好的。我现在就这样做。谢谢。 我刚做了。文档告诉我,使用无效凭据进行验证时会发生“401”错误,并进一步说……“在短时间内检测到多个具有无效凭据的请求后,API 将暂时拒绝所有身份验证尝试具有 403 Forbidden 的用户(包括具有有效凭据的用户):“我想这就是正在发生的事情......我不确定 只是一个猜测,但 Authorization 的标头是否应该在 token 而不是 bearer 之前? 没有。而且我没有把令牌放在不记名前。 'Authorization: 'bearer '+ token(githubData.token), 【参考方案1】:

也许只是一个错字 - 请尝试以下操作:

fetch(baseUrl, 
  method: "POST",
  // lowercase 'h' for headers
  headers: headers,
  body: JSON.stringify(body),
  mode: "cors",
)
// ...

如果这仍然不起作用,请检查您的 范围 以获取您的访问令牌。 GitHub 让您可以详细控制您希望使用特定令牌允许哪些类型的操作,以及不允许哪些操作。

【讨论】:

没用。我什至尝试用 axios 获取它,现在我认为错误应该在范围内的某个地方。但是我在生成令牌时检查了所有字段,给了我的令牌所有权限 这很奇怪,在我回答之前,我实际上复制了您的代码添加了第一行const fetch = require("node-fetch");,用我自己的替换了 githubdata 并将“headers”写为小写,当我运行它时它按预期工作通过$ node code.js

以上是关于GitHub GraphQL 不断返回 POST https://api.github.com/graphql 401 错误的主要内容,如果未能解决你的问题,请参考以下文章

如何在graphql中返回post请求的响应

Graphql 突变返回 Post 400 错误,不知道如何解决

GraphQL - 缺少 POST 正文。你忘记使用 body-parser 中间件了吗?

如何使用 HttpUrlConnect 使用 java 查询 Github graphql API

如何使用 Github GraphQL Api 创建问题和标签?

GraphQL:如何在突变成功后发出警告?