| | |
| | | /** 昵称 */ |
| | | nickname?: string; |
| | | /** 当前登录用户的角色 */ |
| | | roles?: Array<string>; |
| | | exRoles?: Array<string>; |
| | | /** 当前登录用户的按钮级别权限 */ |
| | | permissions?: Array<string>; |
| | | } |
| | |
| | | * @description 设置`token`以及一些必要信息并采用无感刷新`token`方案 |
| | | * 无感刷新:后端返回`accessToken`(访问接口使用的`token`)、`refreshToken`(用于调用刷新`accessToken`的接口时所需的`token`,`refreshToken`的过期时间(比如30天)应大于`accessToken`的过期时间(比如2小时))、`expires`(`accessToken`的过期时间) |
| | | * 将`accessToken`、`expires`、`refreshToken`这三条信息放在key值为authorized-token的cookie里(过期自动销毁) |
| | | * 将`avatar`、`username`、`nickname`、`roles`、`permissions`、`refreshToken`、`expires`这七条信息放在key值为`user-info`的localStorage里(利用`multipleTabsKey`当浏览器完全关闭后自动销毁) |
| | | * 将`avatar`、`username`、`nickname`、`exRoles`、`permissions`、`refreshToken`、`expires`这七条信息放在key值为`user-info`的localStorage里(利用`multipleTabsKey`当浏览器完全关闭后自动销毁) |
| | | */ |
| | | export function setToken(data: DataInfo<Date>) { |
| | | let expires = 0; |
| | |
| | | : {} |
| | | ); |
| | | |
| | | function setUserKey({ avatar, username, nickname, roles, permissions }) { |
| | | function setUserKey({ avatar, username, nickname, exRoles, permissions }) { |
| | | useUserStoreHook().SET_AVATAR(avatar); |
| | | useUserStoreHook().SET_USERNAME(username); |
| | | useUserStoreHook().SET_NICKNAME(nickname); |
| | | useUserStoreHook().SET_ROLES(roles); |
| | | useUserStoreHook().SET_ROLES(exRoles); |
| | | useUserStoreHook().SET_PERMS(permissions); |
| | | storageLocal().setItem(userKey, { |
| | | refreshToken, |
| | |
| | | avatar, |
| | | username, |
| | | nickname, |
| | | roles, |
| | | exRoles, |
| | | permissions |
| | | }); |
| | | } |
| | | |
| | | if (data.username && data.roles) { |
| | | const { username, roles } = data; |
| | | if (data.exRoles) { |
| | | const { username, exRoles } = data; |
| | | setUserKey({ |
| | | avatar: data?.avatar ?? "", |
| | | username, |
| | | nickname: data?.nickname ?? "", |
| | | roles, |
| | | exRoles, |
| | | permissions: data?.permissions ?? [] |
| | | }); |
| | | } else { |
| | |
| | | storageLocal().getItem<DataInfo<number>>(userKey)?.username ?? ""; |
| | | const nickname = |
| | | storageLocal().getItem<DataInfo<number>>(userKey)?.nickname ?? ""; |
| | | const roles = |
| | | storageLocal().getItem<DataInfo<number>>(userKey)?.roles ?? []; |
| | | const exRoles = |
| | | storageLocal().getItem<DataInfo<number>>(userKey)?.exRoles ?? []; |
| | | const permissions = |
| | | storageLocal().getItem<DataInfo<number>>(userKey)?.permissions ?? []; |
| | | setUserKey({ |
| | | avatar, |
| | | username, |
| | | nickname, |
| | | roles, |
| | | exRoles, |
| | | permissions |
| | | }); |
| | | } |