我正在对 api 提出请求,但即将授权失败。如何在获取链接中包含授权令牌

Posted

技术标签:

【中文标题】我正在对 api 提出请求,但即将授权失败。如何在获取链接中包含授权令牌【英文标题】:I am making request on api but it is coming authorisation failed. How to include authorisation token in the fetch link 【发布时间】:2019-12-04 15:38:12 【问题描述】:

我有这个关于在 react.js 中使用 fetch 命令的 http resquest 的问题,响应是授权失败。我对所有这些东西都很陌生。如何成功地从链接中获取数据?

我试过这段代码:

import React, useState,useEffect from "react";
import  async  from "q";


function Shop()
  useEffect(() =>  //this function will run when component did mount
    fetchItems();
  ,[]);
  const [items, setItems] = useState([]);

  const fetchItems = async () => 
    const data = await fetch("https://fortnite-api.theapinetwork.com/upcoming/get");
    console.log(data)
    const items = await data.json();
    console.log(items);
    setItems(items);
  


return(<div>
   items.map(item => (
   <h1 key=item.itemid>item.name</h1>
   ))
             
  </div>
  )

export default Shop;

获取数据时出现以下错误:

错误:"success":false,"error":"请添加您的授权令牌。","eCode":"authorization.empty","_console":"https://console.fortniteapi.com"强>

【问题讨论】:

检查 fortnite api 的文档,需要私钥进行身份验证,并在使用 react 之前尝试使用 Postman 获取结果。 【参考方案1】:

您可能需要将其添加到标题中,如下所示:

fetch(
    "https://fortnite-api.theapinetwork.com/upcoming/get",
    
        headers: 
            Authorization: 'Bearer [your-token-here]'
        ,
    
)

【讨论】:

感谢您的回复。我相应地更新了代码。现在我收到错误:“加载资源失败:服务器响应状态为 403” 您是否添加了正确的令牌?该错误表示您的令牌无效,您无权访问。 好的,我得到了答案,是链接的问题。而是-“fortnite-public-api.theapinetwork.com/prod09/upcoming/get”, 感谢您的回答,这对我帮助很大 - 非常感谢

以上是关于我正在对 api 提出请求,但即将授权失败。如何在获取链接中包含授权令牌的主要内容,如果未能解决你的问题,请参考以下文章

向 Azure Blob 存储发出 GET 请求时授权失败 [REST API][Azure Blob 存储]

如何使用公钥保护 Web API 免受未经授权的访问?

使用 JWT 对 json-server 进行授权

如何允许API网关代理与POST请求的Cognito Authorizer集成?

代码=-1011 “请求失败:未经授权 (401)” AFNetoking

PayPal REST API - 沙盒为 API 请求返回 401 但访问令牌成功