javascript - react-router和express控制权限问题
PHPz
PHPz 2017-04-11 12:53:55
[JavaScript讨论组]

今天做做博客的时候,想到有权限的问题。第一瞬间就是想用ejs(服务端模板引擎)返回一个字段(从session里面取的),然后在路由的jsx里面用mapStateToProps(){//这里面判断变量是否存在,如果存在对应的菜单展示}

app.get('*', function (req, res) {
    // Post.get(null, function (err, posts) {
    //   if (err) {
    //     posts = [];
    //   }
    // });
    console.log('**************************')
    res.render('index', {
      title: '主页',
      user: req.session.user,
      success: req.flash('success').toString(),
      error: req.flash('error').toString(),
      env : 'development',
      pageAuthor:['01','02','03'].toString()
    });
    // res.renderToString('index',{
    //
    // })
  });
  
function mapStateToProps(state) {
    
    let routerState = 2;
    if (document.getElementById('user').value){
        routerState = 1
    }
    return {
        routerState : routerState
    }

}
export default connect(mapStateToProps)(Main)

但是并没有得到想要的效果。必须要刷新页面变量才会出现.
我的理解是ejs必须要服务器解析后才能返回给浏览器解析.
但是我用的是react-router单页面刷新。
希望有大神给出解决方案,如果有其他更好的解决方案也可以提出~~
谢谢~~

PHPz
PHPz

学习是最好的投资!

全部回复(2)
迷茫

你这个不是后端mvc的思维吗?
既然都做单页应用了,后端通讯只需要ajax,权限判断给后端发个ajax就行了。

前端没有安全,所有请求都要再次经过后端验证。
比如我现在要通过前端路由,进入管理后台页面,我通过ajax请求得到我有权限,这时候呈现出进入后台的菜单按钮。
在我点击按钮进入后台页面,会再次进行ajax请求获取数据,这次请求后端是会根据session进行验证的,所以数据是安全的。
前端获得的权限只是呈现一些并不敏感的东西,提高用户体验。所有有关数据的请求,后端都是要根据session验证的,并没有不安全。

怪我咯

在React里需要判断权限的地方使用Ajax请求服务端接口,根据返回的结果显示不同的界面。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号