javascript 从标头获取授权令牌以获取reactj

nbnkbykc  于 2023-01-01  发布在  Java
关注(0)|答案(3)|浏览(157)

我在react项目中使用fetch从使用令牌进行身份验证的API获取数据,我在postman中的登录端点在authorization头中返回令牌,您可以看到

这是我在reactjs项目中的登录函数

async login(dataLogin) {

  const response = await fetch(`${API_URL}/login`, {
    method: "post",
    headers: {
      "Content-Type": "application/json"
    },
    body: dataLogin
  });
  
  const data = await response
  
  console.log(response.headers);
   console.log(response.headers.Authorization);
   console.log(response.headers.get('Authorization'));

  return data;}


您可以看到response.headers.authorization返回未定义和
get('授权')返回空值。
你可以在浏览器的网络面板

中看到
请问有谁知道如何从报头中获取授权令牌吗?

wmtdaxz3

wmtdaxz31#

当您尝试使用API登录时,您应该收到数据,即授权令牌或调用响应中的任何其他内容。
检查当你调用一个API时你得到了什么样的响应,它可能应该像response.data一样。首先你需要在Postman中检查同样的响应。

mbjcgjjk

mbjcgjjk2#

要访问响应标头的值,服务器必须在Access-Control-Expose-Headers标头中返回标头名称。如果没有它,则无法在浏览器中访问Authorization

emeijp43

emeijp433#

response.headers.get('Authorization')
    • 编辑:**

由于您得到的是null,请考虑以下情况:
Authorization标头通常(但不总是)在用户代理首次尝试在没有凭据的情况下请求受保护资源之后发送。https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Authorization
因此,为了查看响应头,请使用浏览器的网络面板,而不是使用postman。

相关问题