# 系统用户相关
- - -
> 框架采用sa-token控制权限 并对sa-token的api做了一定的业务封装
## 用户登录
> 参考自带多种登录实现 不限制用户数据来源 只需要构建 LoginUser 即可完成登录
> 例如: `同表不同类型` `不同表` `同表+扩展表`

## 获取用户信息
> 完成登录后会生成登录token返回给前端 前端需要再请求头携带token 后端方可获取到对应的用户信息
请求头传递格式: `Authorization: Bearer token`
后端获取用户信息:
```java
LoginUser user = LoginHelper.getLoginUser();
```
## 获取用户信息(基于token)
```java
LoginUser user = LoginHelper.getLoginUser(token);
```
## 获取登录用户id
```java
Long userId = LoginHelper.getUserId();
```
## 获取登录用户账户名
```java
String username = LoginHelper.getUsername();
```
## 获取登录用户所属租户id
```java
String tenantId = LoginHelper.getTenantId();
```
## 获取登录用户所属部门id
```java
Long deptId = LoginHelper.getDeptId();
```
## 获取登录用户类型
```java
UserType userType = LoginHelper.getUserType();
```
## 获取登录用户其他扩展属性
```java
Object obj = LoginHelper.getExtra(key);
```
## 设置登录用户其他扩展属性
参考登录设置 `clientId` 属性

## 判断用户是否为超级管理员
```java
// 判断当前登录用户
boolean b = LoginHelper.isSuperAdmin();
// 判断用户基于id
boolean b = LoginHelper.isSuperAdmin(userId);
```
## 判断用户是否为租户管理员
```java
// 判断当前登录用户
boolean b = LoginHelper.isTenantAdmin();
// 判断用户基于角色组
boolean b = LoginHelper.isSuperAdmin(rolePermission);
```
## 其他更多操作
[Sa-Token 官方文档 - 登录认证](https://sa-token.cc/doc.html#/use/login-auth)