繁華開滿天機(jī)
2018-09-13 11:09:03
今天做做博客的時(shí)候,想到有權(quán)限的問題。第一瞬間就是想用ejs(服務(wù)端模板引擎)返回一個(gè)字段(從session里面取的),然后在路由的jsx里面用mapStateToProps(){//這里面判斷變量是否存在,如果存在對應(yīng)的菜單展示}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)但是并沒有得到想要的效果。必須要刷新頁面變量才會出現(xiàn).我的理解是ejs必須要服務(wù)器解析后才能返回給瀏覽器解析.但是我用的是react-router單頁面刷新。希望有大神給出解決方案,如果有其他更好的解決方案也可以提出~~ 謝謝~~
1 回答

揚(yáng)帆大魚
TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超9個(gè)贊
你這個(gè)不是后端mvc的思維嗎?
既然都做單頁應(yīng)用了,后端通訊只需要ajax,權(quán)限判斷給后端發(fā)個(gè)ajax就行了。
前端沒有安全,所有請求都要再次經(jīng)過后端驗(yàn)證。
比如我現(xiàn)在要通過前端路由,進(jìn)入管理后臺頁面,我通過ajax請求得到我有權(quán)限,這時(shí)候呈現(xiàn)出進(jìn)入后臺的菜單按鈕。
在我點(diǎn)擊按鈕進(jìn)入后臺頁面,會再次進(jìn)行ajax請求獲取數(shù)據(jù),這次請求后端是會根據(jù)session進(jìn)行驗(yàn)證的,所以數(shù)據(jù)是安全的。
前端獲得的權(quán)限只是呈現(xiàn)一些并不敏感的東西,提高用戶體驗(yàn)。所有有關(guān)數(shù)據(jù)的請求,后端都是要根據(jù)session驗(yàn)證的,并沒有不安全。
添加回答
舉報(bào)
0/150
提交
取消