美文网首页
【React】react-router-dom 做权限控制

【React】react-router-dom 做权限控制

作者: 大Q本Q | 来源:发表于2019-06-20 11:46 被阅读0次

    使用Route做登录权限控制

    const USER_TYPE ={
        0:'EW',
        1:'EA',
        100:'PA'
    }
    
    
    // 校验身份
    /*
    * allow_role_list: [G, EW, EA, PA]
    * G:  guest                         未登录的来宾
    * EW: enterprise worker             企业员工
    * EA: enterprise administrator      企业管理员
    * PA: Platform administrator        平台管理员
    * */
    const authorization = (props, component, allow_role_list = ['EW', 'EA', 'PA']) => {
        let role = true;
    
        // 校验参数是否存在
        if ( !props || !component)
            role = 'G'
    
    
        {
            let signer = localStorage.getItem('signer')
            if (!signer)
                role = 'G'
            else {
                signer = JSON.parse(signer)
                role = USER_TYPE[signer.userType]
            }
        }
    
        return allow_role_list.some(item=>item===role) ? component : <Redirect to='/sign/in'/>
    }
    
    
    
    <Route path='/cms'  
                exact 
                render={props => 
                       authorization( 
                                  props, 
                                  <ProjectCreate {...props}/>, 
                                  ['adminstrator']
                        )
                }
    ></Route>
    
    

    相关文章

      网友评论

          本文标题:【React】react-router-dom 做权限控制

          本文链接:https://www.haomeiwen.com/subject/tzsdqctx.html