0

我有 2 个组件/页面。一个是登录页面,一个是用户自定义页面。我希望用户自定义页面获得令牌授权,因此您只能在登录后看到它。

我正在使用 Django + React 设置,其中 Django Knox 用作授权令牌。

我现在有一个使用 this.props 的工作流,它将令牌从登录组件传递到主 app.js,然后传递到用户自定义组件。但我猜在页面之间的路由/切换过程中,我的令牌丢失了。我如何维护这个令牌?

4

1 回答 1

0

因此,基本上尝试保留您的令牌,而不必在(例如)页面重新加载时重新获取它,或者正如您提到的,在应用程序的不同页面之间导航时。

有多种存储令牌的方法,无需太多工作,其中一个例子是sessionStorage

// API response
const token = response.data.token

// write to storage
sessionStorage.setItem('myTokenName', token)

// read from storage
sessionStorage.getItem('myTokenName')

// delete from storage
sessionStorage.remove('myTokenName')

使用普通的 JS:

  • sessionStorage
  • localStorage
  • cookies

注意:每个都有其目的和限制

使用额外的库进行状态管理,虽然这需要更多的工作,并且没有必要解决您的问题。

  • Redux
  • Apollo(假设您使用的是 GraphQL)
于 2020-07-23T00:10:19.817 回答