为了账号安全,请及时绑定邮箱和手机立即绑定

react-router和express控制权限问题

react-router和express控制权限问题

繁华开满天机 2018-09-13 11:09:03
今天做做博客的时候,想到有权限的问题。第一瞬间就是想用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单页面刷新。希望有大神给出解决方案,如果有其他更好的解决方案也可以提出~~ 谢谢~~
查看完整描述

1 回答

?
扬帆大鱼

TA贡献1799条经验 获得超9个赞

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

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


查看完整回答
反对 回复 2018-10-14
  • 1 回答
  • 0 关注
  • 545 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信