在 React 中显示表达式会话数据



我实现了OpenID护照.js策略(passport-steam http://www.passportjs.org/packages/passport-steam/(

到我的 MERN-stack 应用程序。登录用户的信息将保存在快速会话中。因此,可以通过以下途径访问包含用户信息的对象

req.session.passport.user

在我的节点.js文件中。

使我的 React-前端可以访问此会话数据的最佳/常见方法是什么?在其他非反应项目中,我使用了像车把这样的模板引擎.js这使得通过像这样传递属性来显示属性变得非常容易:

app.get('/', (req, res) => {
res.render('main', {
user: req.user
});
});

另外,我不想在服务器端渲染我的反应应用程序。

为用户创建了一个端点:

app.get("/user", (req, res) => {
res.send(user);
});

并在我的 react 应用程序中获取数据,创建一个 Conext 以使其可用于所有其他组件:

import React, { createContext, useState, useEffect } from "react";
const context = createContext(null);
const UserProvider = ({ children }) => {
const [user, setUser] = useState({});
useEffect(() => {
fetch("/user")
.then(res => res.json())
.then(res => setUser(res))
.catch(err => {
console.log(err);
});
}, []);
return (
<context.Provider value={user}>
{children}
</context.Provider>
);
};
UserProvider.context = context;
export default UserProvider;

最新更新