简单说一下吧,这个技术至少30年前就已经很成熟了,也一点都不复杂。脑子正常的框架都会采用,你非要选那些脑子不正常的那也确实没办法。
1. 使用https通讯,防止当中有人偷窥,这个没有什么好说的。
2. 登录过程,用户通过用户名/密码等等验证方式登录,登录成功,后端发一个随机数(学名session_id)给前端,前端要保存这个数到cookies里。后端会把这个随机数和你登录的账户存到数据库/文件/redis里。由于前端只有这么个随机数,所以无法猜出和后端用户的对应关系。
3. 之后用户的每项请求,都需要附加上这个随机数。后端由于保存了这个数和用户的对应关系,因此可以知道这个请求是哪个用户发出的,由此与存在后端数据库里的权限管理部分交换,拒绝一切越权的操作。如果用户的请求不带这个数,那就说明是未登录的用户。
4. 这个session_id是有寿命的,根据不同网站的安全要求,超时之后简单把这个对应关系删除,这时就相当于用户退出登录了。这时用户再发请求的时候后端数据库找不到对应关系就简单把用户当成未登录用户就可以了。
5. cookie的原理确保了别人无法偷到这个session_id,只有在这台电脑前,这个浏览器本身能知道这个id。这个id足够长也可以保证很难通过碰撞的方式伪造出别人的ID。
6. 以上过程很成熟了,所以正常的框架都肯定有自动化处理这些过程的函数,直接调用就可以了。
知道了用户是哪一个,不能正确处理权限问题,那就是后端的锅。至于前端显示哪些菜单那完全是个显示问题而已。
--
FROM 101.88.159.*