我有 2 个组件/页面。一个是登录页面,一个是用户自定义页面。我希望用户自定义页面获得令牌授权,因此您只能在登录后看到它。
我正在使用 Django + React 设置,其中 Django Knox 用作授权令牌。
我现在有一个使用 this.props 的工作流,它将令牌从登录组件传递到主 app.js,然后传递到用户自定义组件。但我猜在页面之间的路由/切换过程中,我的令牌丢失了。我如何维护这个令牌?
我有 2 个组件/页面。一个是登录页面,一个是用户自定义页面。我希望用户自定义页面获得令牌授权,因此您只能在登录后看到它。
我正在使用 Django + React 设置,其中 Django Knox 用作授权令牌。
我现在有一个使用 this.props 的工作流,它将令牌从登录组件传递到主 app.js,然后传递到用户自定义组件。但我猜在页面之间的路由/切换过程中,我的令牌丢失了。我如何维护这个令牌?
因此,基本上尝试保留您的令牌,而不必在(例如)页面重新加载时重新获取它,或者正如您提到的,在应用程序的不同页面之间导航时。
有多种存储令牌的方法,无需太多工作,其中一个例子是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)