快速会话 - 在 React 应用程序中添加和访问 req 之外的自定义 cookie 字段
Express session - Add and access custom cookie field outside of req in a react app
我有一个使用快速会话的 React 应用程序。标准会话和 cookie 按预期工作,但我正在尝试在请求上下文之外添加自定义字段,如下所示。
import session from 'express-session';
export default ({ children }) => {
console.log("session.darkState at top ", session.darkState);//check whats stored when refreshed
const [darkState, setDarkState] = useState(session.darkState?session.darkState:false);
function giveMeTheme(darkStateFromAppBar) {
setDarkState(darkStateFromAppBar);
session.darkState = darkState;//store in session
console.log(session.darkState);
}
我无法使用请求上下文,所以我只是使用会话.....
session.darkState
当用户导航到另一个页面或刷新时返回未定义状态。
如何存储会话时长的字段?
我使用 mongo 存储,当用户登录时,我在 mongodb 中保存所有标准字段,例如 resave、saveUninitialized。
我找不到通过快速会话添加自定义 cookie 的解决方案,因此最终使用 react-cookie
import { useCookies } from 'react-cookie';
import NameForm from './NameForm';
function App() {
const [cookies, setCookie] = useCookies(['name']);
function onChange(newName) {
setCookie('name', newName, { path: '/' });
}
return (
<div>
<NameForm name={cookies.name} onChange={onChange} />
{cookies.name && <h1>Hello {cookies.name}!</h1>}
</div>
);
}
我有一个使用快速会话的 React 应用程序。标准会话和 cookie 按预期工作,但我正在尝试在请求上下文之外添加自定义字段,如下所示。
import session from 'express-session';
export default ({ children }) => {
console.log("session.darkState at top ", session.darkState);//check whats stored when refreshed
const [darkState, setDarkState] = useState(session.darkState?session.darkState:false);
function giveMeTheme(darkStateFromAppBar) {
setDarkState(darkStateFromAppBar);
session.darkState = darkState;//store in session
console.log(session.darkState);
}
我无法使用请求上下文,所以我只是使用会话.....
session.darkState
当用户导航到另一个页面或刷新时返回未定义状态。
如何存储会话时长的字段?
我使用 mongo 存储,当用户登录时,我在 mongodb 中保存所有标准字段,例如 resave、saveUninitialized。
我找不到通过快速会话添加自定义 cookie 的解决方案,因此最终使用 react-cookie
import { useCookies } from 'react-cookie';
import NameForm from './NameForm';
function App() {
const [cookies, setCookie] = useCookies(['name']);
function onChange(newName) {
setCookie('name', newName, { path: '/' });
}
return (
<div>
<NameForm name={cookies.name} onChange={onChange} />
{cookies.name && <h1>Hello {cookies.name}!</h1>}
</div>
);
}