先描述一下需求:
项目中有一些页面是登录跟没登录都可以浏览的,但是有些页面需要用户登录才能浏览;有些页面是登没登录都能浏览,但一些操作就需要登录的用户才能进行(比如商城里,未登录用户也可以浏览,但是加入购物车或者结算购物车就需要提示用户登录了);
我自己的思路是有个全局状态保存是否登录,然后每个页面都检测这个状态,不知道这样的方式会不会产生什么问题。不知道大家有没有好的实现方式?
备注:项目是React写的
先描述一下需求:
项目中有一些页面是登录跟没登录都可以浏览的,但是有些页面需要用户登录才能浏览;有些页面是登没登录都能浏览,但一些操作就需要登录的用户才能进行(比如商城里,未登录用户也可以浏览,但是加入购物车或者结算购物车就需要提示用户登录了);
我自己的思路是有个全局状态保存是否登录,然后每个页面都检测这个状态,不知道这样的方式会不会产生什么问题。不知道大家有没有好的实现方式?
备注:项目是React写的
根据你的需求 可以分为两部分
页面权限和接口权限
1:有些页面能进 有些页面不能进 可以写一个看门狗js 用来判断是用户是否登录 要登录的页面把看门狗给加上
2:有些页面能进但是某些操作需要登录才可以 这样你可以把的逻辑放在接口上 比如你的前端登录状态是存的token 你请求这些接口的时候会带上token 由后端来判断登录是否合法 并返回对应的状态码 你再做处理
推荐了解一下微信的access_token的原理,或者JWT的原理,你的思路与这两套方案是一致的。
关键的地方是验证token是否合法的机制以及token的过期策略等等,你目前的思路考虑的不够全面。
验证token可以有强弱之分,用户执行有安全风险的操作的时候进行强验证,没有安全风险则采取弱验证,避免发起过多的请求。
用react的话,自然是要引入一个全局状态来管理token的,因为会话状态是所有组件的公共状态。
11 回答1.3k 阅读
3 回答965 阅读✓ 已解决
2 回答961 阅读✓ 已解决
3 回答951 阅读✓ 已解决
2 回答649 阅读
3 回答973 阅读
3 回答971 阅读
觉得 api 接口权限可以满足,需要鉴权的页面拉取数据的 api,如果未登录,后端会返回 401,前端根据返回码,给用户提示。