【发布时间】:2019-11-08 12:19:47
【问题描述】:
我们需要构建一个应用程序,允许某些用户访问某些页面,而不允许其他用户访问。由于这还不够,我们在页面上有一些组件(按钮、链接)是不允许用户看到的。
所以我们假设我们有不同的用户组(比如 a、b 和 c),它们可以处理不同的页面和不同的页面组件。可能用户 a 是完全管理员,可以查看所有页面和页面上的组件。用户 b 仅被允许访问项目中某个子部分的页面和组件。用户 c 可能是“只读”用户。
用户权限存储在一个以前在jsf中使用的数据库中。我们要切换到“2019”而不是保留“2010 技术”。在 JSF 中,我们将用户权限信息存储在 Session-Scoped bean 中,然后我们构建具有可以呈现或不呈现的组件的页面(例如 <button render=#{user.isallowedto}>)。
是否可以在带有节点后端的反应应用程序中做同样的事情?在node后端使用express-session和passport进行权限处理的登录过程已经成功,但是我们的react前端也可以使用用户权限的信息吗?
任何帮助都会很棒!非常感谢!
【问题讨论】:
-
当然。和基本相同的想法。例如在某些渲染中:
render (){return user.isallowed && (<Button/>) -
当然可以,但是,React 与 Node 或
express-session无关,这些都是服务器端的问题。您只需将相关权限返回给客户端,然后(类似于您在 JSF 中所做的)处理禁用或阻止相关页面/组件。 -
非常感谢。我们完全像这样得到它。但我们需要将用户权限数据安全传递给客户端。如果您通过 cookie 进行操作,据我们所知,可以更改 cookie 数据。这将导致这样一个事实,用户可以看到一个页面(空白,由于服务器端处理的 api 安全性)......在 cookie 中使用散列数据是否是一种选择?
标签: node.js reactjs express passport.js