通过二进制的权限验证思路

首先是权限码的存储方式:从数据库中取最大的权限码对其做位运算右移(<<),如1<<0,1<<1,1<<2,1<<3,分别得到1,2,4,8,后面的以此类推。

用户权限设置:对用户选择的权限码做或(|)操作,假设选择了1,4权限,那么可以得到用户权限为 1| 4 = 5,也可以通过异或运算符取消一个权限5^1 = 4.

通过请求的URL得到对应的权限码,假设为1,通过 (1 & 5) > 0 可以验证用户是拥有该权限的,相反则没有。 

原文地址:https://www.cnblogs.com/xiaodo0/p/3627971.html