我现在搭建一个前后端分离的后台管理页面,前端使用Vue全家桶,用vue-router来处理路由事件,后端语言是node.js,框架是express。后端只负责提供api接口,不涉及处理路由方面的事情。所以我想请问一下,既然前后端分离了,后端不处理路由问题,那前端如何保证每一个页面都可以验证用户是否有权限访问该页面。
1 回答
斯蒂芬大帝
TA贡献1827条经验 获得超8个赞
可以看下passport这个库,它里面有各种应对。
另外token最好存在服务器端session,和用户sessionid形成映射.原理基本上是
每次用户加载html就去请求一个api去获取/loginuser 信息,node端一看session里没有token就返回 failed,这样你html页面就弹出login页面。用户登录成功后,获得api access token,这token就和seesionID做一个映射还是存在node这一端,页面还是重定向到index.html,html还是自动请求/loginuser这个时候seesion里已经有token了,就能正常拿着token去call 真正的api了获取user信息了,这样你/loginuser返回就是user信息,你就可以把login的页面关闭了。
补充一下,真实业务api上都要加一到middleware去check请求是否有效,比如header里是否带有tokeny已经token的有效性。另外最好把鉴权模块和业务逻辑分离
添加回答
举报
0/150
提交
取消