我正在开发一个带有NodeJS / Express后端的React / Redux客户端。 react应用程序在端口3000上运行,后端在端口443上运行。
此React应用程序具有3条react-router路由(“注册”,“登录”和“主页”,最后一条受保护,并且仅经身份验证的用户可以访问)。
当用户登录时,React应用程序使用电子邮件和密码向后端发出发布请求。服务器在mongoDB数据库中搜索用户,并返回带有res.cookie
标志的httpOnly
。
cookie是一个包含一些信息的jwt,例如isAdmin
标志。客户端中的“本地”路由具有不同的选项,具体取决于用户是否为管理员。
我的React客户端如何安全地知道用户是否已登录以及该用户是否为管理员?
我找到了2个解决方案:
我感觉到身份验证流程中缺少某些内容。 在此先感谢您,我的英语不好。
答案 0 :(得分:0)
我知道的一种解决方案是在后端上有一个端点,客户端可以在该端点上检索用户信息(例如/ users / me)。
基本上,在安装应用程序时,您将向该端点发送请求,获取用户信息,然后用户可以开始访问React应用程序中的不同路由。
这种方法的一个缺点是,当您处于开发环境中时,由于对前端进行的每项更改,您都将由于热重载而对该后端端点执行ping操作。