一、基本概念
1.什么是认证
认证:判断一个用户的身份是否合法的过程。二维码登录、刷脸、密码都算。
2.什么是会话
为了避免用户的每次操作都需要进行认证,可以将用户的信息保存在会话中,常见的有基于session的方式,基于token的方式。
session方式:
-
用户登录成功,服务器会创建一个session,并返回给客户端ssid,存储在客户端cookie中,用户访问会携带ssid,服务器进行比较。
-
token方式: 用户认证成功后,服务端生成一个token发给客户端(服务端不存储token,通过生成token的算法校验),客户端可以放在kookei或者localStoreage.
3.什么是授权
登录成功后,校验有没有权限使用某些功能,主要是保护资源。例如微信没有绑定银行卡是不能发红包的。
授权是用户认证通过根据用户的权限来控制用户访问资源的过程,拥有资源的访问权限则能正常访问,否则拒绝访问。
4.授权的基本模型
授权可以理解为:
who谁对什么进行怎样的操作。
what系统菜单、页面、按钮、代码方法(系统功能资源)、商品信息、订单信息(数据资源货实体资源)
how权限,操作的权限
4.1RBAC
4.1.1基于角色的访问控制
判断是否具有某角色,具有访问。
4.1.2基于资源的访问控制
判断角色是否具有权限,权限独立出来了。