如何为节点中的不同路由设置不同的标头并做出反应?

问题描述

我正在建立一个具有三个主要用户角色的网站。管理员,患者或医生。我正在使用JWT令牌进行身份验证和授权,但是对于它来说是一个全新的领域,我不了解几件事。

用户登录时,将为他/她分配一个jwt有效负载,其中包含所有用户信息。根据此令牌返回的角色,我希望用户浏览相应的路线。但是,如何为后端和前端路由设置这些单独的约束?目前,我仅在后端路由中检查授权标头,如下所示:

            router.get('/get-profile',(req,res) => {
                header = req.headers['authorization'];
                jwt.verify(header,'secretkey',(err,authorizedData) => {
                    if (err) {
                        //If error send Forbidden (403)
                        console.log('ERROR: Could not connect to the protected route');
                    }
                    else {
                       //Rest of the code...
                    }
                })
            })

以上内容仅应由例如admin用户访问。但是,如果用户以患者身份登录,则他/她还将设置一个授权标头,因此可以访问此路由。

在前端,我有

            const PrivateRoute = ({ component: Component,auth,...rest }) => (
                    <Route {...rest} render={(props) => (
                    auth.isAuthenticated
                    ? <Component {...props} />
                    : <Redirect to='/login' />
                )} />   
            )

此外,我正在使用上述组件来传递所有其他受保护的路由,但是上述方法还仅检查授权标头,而不是单个角色。任何帮助将不胜感激。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)