尝试分析Sa-Token框架中用到的技术
- 按顺序打开目录
- 阅读说明文件
- 阅读子文件夹内maven项目源码
- 调用方法后
- 配置注解拦截并检测到注解后
- 配置路由拦截并检测到路由匹配后
- 从请求中的各种方式内尝试获取token
- 根据token获取对应用户id等唯一信息
- 根据用户id判断当前用户是否拥有此权限或角色
- 通过则放行, 否则抛出异常
查看Sa-Token数据缓存的dao接口, 里面最主要的数据存储方法是set(String key, String value, long timeout)
每个用户都有唯一的登录id, key可以用它来作为键, 从而保存此用户的SaSession对象
问: 等等, 如果是多用户体系不就重复了吗?
答: 那就把不同账号体系的类型标识加到id前面, 这样就算id重复了, 类型也不会重复
问: 那就只能存储一个session了, 如果每个用户需要自定义自己的配置怎么办?
答: 也是, 那就再加一个前缀, 标识这个是session, 这个是tokenName, 这个是token最后操作时间等等
具体有哪些数据存储的键, 进入sa-token-core模块下, cn.dev33.satoken.stp包下, StpLogic类内, 全文搜索关键词: 返回相应key
最后说明一下, 随着项目的更新, 框架源代码可能会发生变化,如果当前项目的内容有误, 随时提交issue即可