使用API​​时如何通过reactjs传递JsonWebToken x-access-token?

Posted

技术标签:

【中文标题】使用API​​时如何通过reactjs传递JsonWebToken x-access-token?【英文标题】:How to pass JsonWebToken x-access-token through reactjs while using API? 【发布时间】:2018-08-13 01:07:15 【问题描述】:

如何在使用带有 react 的 API 时传递动态 JWT x-access-token?我知道如何使用 fetch 方法使用 API。

componentDidMount()
    fetch('http://example.com/api/admin/dailyPosts')
    .then(response => response.json())
    .then(response => 
      this.setState(
        postCount: response
      )
    )
  

在安慰 this.state.postCount 时,我得到一个空数组,因为没有提供令牌。那么如何将动态令牌传递给这个 API?

【问题讨论】:

你的服务器端是什么样子的?您使用的是 express 或 passport.js 之类的吗? 这和 React 有什么关系? 不,我没有使用快递或护照。我只是在处理 create-react-app 模块。 【参考方案1】:

当您从 API 获得或生成令牌时,将其设置为浏览器的 cookie,如

import  Cookies  from 'react-cookie';
Cookies.set(token, auth_token_here, path: '/');

设置从浏览器获取cookie并在请求方法中设置带有令牌的标头对象

import  Cookies  from 'react-cookie';

componentDidMount()
    let auth_token = Cookies.get(token)
    let header_obj = 'Authorization': auth_token;
    fetch(url,  headers : header_obj).then();

假设您将令牌存储在浏览器中或可作为来自 redux 的 props

【讨论】:

Akhilesh,谢谢你的回答。实际上,我不知道如何将令牌存储在存储中。如果你能帮忙,那就太好了。谢谢。 我在我的项目 npmjs.com/package/react-cookie 中使用了 react-cookie。使用 react-cookie 编辑了答案。

以上是关于使用API​​时如何通过reactjs传递JsonWebToken x-access-token?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 JSON 用户 API 中的 POST 将密码值传递给 wordpress

如何使用 ReactJS 通过我的 React-Router 传递数据?

如何在提交函数的reactjs中将表单值作为FormData传递

如何在 reactJS 中使用 id 从 API 获取数据?

ReactJS:Rest API JSON 响应:如何解析

React JS - 如何将变量(参数)传递给 API URL?