sa-token/sa-token-doc/doc/more/noun-intro.md
2021-11-02 18:00:04 +08:00

64 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Sa-Token 名词解释
Sa-Token 无意发明任何晦涩概念提升逼格,但在处理 issues 、Q群解答时还是发现不少同学因为一些基本概念理解偏差导致代码出错
所以整理本篇针对一些比较容易混淆的地方加以解释说明。
也希望各位同学在提交 issues、Q群提问之前充分阅读本篇文章保证不要因为基本概念理解偏差增加不必要的沟通成本。
---
#### 几种 Token
- token指通过 `StpUtil.login()` 登录产生的身份令牌用来维护用户登录状态也称satoken、会话Token。
- temp-token指通过 `SaTempUtil.createToken()` 临时验证模块产生的Token也称临时Token。
- Access-Token在 OAuth2 模块产生的身份令牌,也称:访问令牌、资源令牌。
- Refresh-Token在 OAuth2 模块产生的刷新令牌,也称:刷新令牌。
- Id-Token在 SaIdUtil 模块生成的Token令牌用于提供子服务外网隔离功能。
#### 两种过期时间:
- timeout会话 Token 的长久有效期。
- activity-timeout会话的临时有效期。
两者的差别详见:[Token有效期详解](/fun/token-timeout)
#### 三种Session
- User-Session框架为每个账号分配的 Session 对象也称账号Session。
- Token-Session框架为每个 Token 分配的 Session 对象也称令牌Session。
- Custom-Session以一个特定的值作为SessionId来分配的 Session 对象也称自定义Session。
三者差别详见:[Session模型详解](/fun/session-model)
#### 账号标识:
- loginId账号id用来区分不同账号通过 `StpUtil.login(id)` 来指定。
- device登录设备端例如`PC`、`APP`,通过 `StpUtil.login(id, device)` 来指定。
- loginType账号类型用来区分不同体系的账号如同一系统的 `User账号``Admin账号`,详见:[多账号认证](/up/many-account)
#### 几种登录策略:
- 单地登录:指同一时间只能在一个地方登录,新登录会挤掉旧登录,也可以叫:单端登录。
- 多地登录:指同一时间可以在不同地方登录,新登录会和旧登录共存,也可以叫:多端登录。
- 同端互斥登录在同一类型设备上只允许单地点登录在不同类型设备上允许同时在线参考腾讯QQ的登录模式手机和电脑可以同时在线但不能两个手机同时在线。
- 单点登录:在进入多个系统时,只需要登录一次即可。解决用户在不同系统间频繁登录的问题。
- 同端多登录:指在一个终端可以同时登录多个账号。
- 记住我模式:指在一个设备终端登录成功,该设备重启之后依然保持登录状态。
#### 几种注销策略:
- 单端注销:只在调用登录的一端注销。
- 全端注销:一端注销,全端下线。
- 单点注销:与单点登录对应,一个系统注销,所有系统一起下线。
#### 几种鉴权方式:
- 代码鉴权:在代码里直接调用 `StpUtil.checkXxx` 相关 API 进行鉴权。
- 注解鉴权:在方法或类上添加 `@SaCheckXxx` 注解进行鉴权。
- 路由拦截鉴权:在全局过滤器或拦截里通过:`SaRouter.match()` 拦截路由进行鉴权。