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

使用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>

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容