gpt4 book ai didi

javascript - 在服务器渲染期间存储/保留 session

转载 作者:行者123 更新时间:2023-12-03 06:36:28 24 4
gpt4 key购买 nike

我在使用以下启动存储库进行 react 时遇到了一个问题:react-webpack-node

我正在使用sessionStorage出于身份验证目的,并意识到由于此启动器的服务器渲染性质,当应用程序在服务器上渲染时,我无法访问此 session 数据,即为了保护我的路线,我希望以下内容能够工作:

import React from 'react'
import { Route, IndexRoute } from 'react-router'

import App from 'containers/App'
import LoginPage from 'containers/LoginPage'
import DashboardPage from 'containers/DashboardPage'

export default (store) => {
const requireAuth = (nextState, replace, callback) => {
const token = sessionStorage.getItem('token')
if (!token) {
replace({
pathname: '/login',
state: { nextPathname: nextState.location.pathname }
})
}
callback()
}

const redirectAuth = (nextState, replace, callback) => {
const token = sessionStorage.getItem('token')
if (token) {
replace({
pathname: '/'
})
}
callback()
}

return (
<Route path='/' component={App}>
<IndexRoute component={DashboardPage} />
<Route path='/login' component={LoginPage} onEnter={redirectAuth} />
<Route path='/dashboard' component={DashboardPage} onEnter={requireAuth} />
<Route path='/logout' component={LoginPage} />
</Route>
)
}

但事实并非如此,我相信这是由于服务器上的 session 未定义。

最佳答案

你已经指出了问题所在。您可以尝试使用cookie来存储 token ,因为cookie在客户端和服务器上都可以访问。

关于javascript - 在服务器渲染期间存储/保留 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38179937/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com