MCPcopy
hub / github.com/pure-admin/pure-admin-thin / setToken

Function setToken

src/utils/auth.ts:48–116  ·  view source on GitHub ↗
(data: DataInfo<Date>)

Source from the content-addressed store, hash-verified

46 * 将`avatar`、`username`、`nickname`、`roles`、`permissions`、`refreshToken`、`expires`这七条信息放在key值为`user-info`的localStorage里(利用`multipleTabsKey`当浏览器完全关闭后自动销毁)
47 */
48export function setToken(data: DataInfo<Date>) {
49 let expires = 0;
50 const { accessToken, refreshToken } = data;
51 const { isRemembered, loginDay } = useUserStoreHook();
52 expires = new Date(data.expires).getTime(); // 如果后端直接设置时间戳,将此处代码改为expires = data.expires,然后把上面的DataInfo<Date>改成DataInfo<number>即可
53 const cookieString = JSON.stringify({ accessToken, expires, refreshToken });
54
55 expires > 0
56 ? Cookies.set(TokenKey, cookieString, {
57 expires: (expires - Date.now()) / 86400000
58 })
59 : Cookies.set(TokenKey, cookieString);
60
61 Cookies.set(
62 multipleTabsKey,
63 "true",
64 isRemembered
65 ? {
66 expires: loginDay
67 }
68 : {}
69 );
70
71 function setUserKey({ avatar, username, nickname, roles, permissions }) {
72 useUserStoreHook().SET_AVATAR(avatar);
73 useUserStoreHook().SET_USERNAME(username);
74 useUserStoreHook().SET_NICKNAME(nickname);
75 useUserStoreHook().SET_ROLES(roles);
76 useUserStoreHook().SET_PERMS(permissions);
77 storageLocal().setItem(userKey, {
78 refreshToken,
79 expires,
80 avatar,
81 username,
82 nickname,
83 roles,
84 permissions
85 });
86 }
87
88 if (data.username && data.roles) {
89 const { username, roles } = data;
90 setUserKey({
91 avatar: data?.avatar ?? "",
92 username,
93 nickname: data?.nickname ?? "",
94 roles,
95 permissions: data?.permissions ?? []
96 });
97 } else {
98 const avatar =
99 storageLocal().getItem<DataInfo<number>>(userKey)?.avatar ?? "";
100 const username =
101 storageLocal().getItem<DataInfo<number>>(userKey)?.username ?? "";
102 const nickname =
103 storageLocal().getItem<DataInfo<number>>(userKey)?.nickname ?? "";
104 const roles =
105 storageLocal().getItem<DataInfo<number>>(userKey)?.roles ?? [];

Callers 3

sso.tsFile · 0.90
loginByUsernameFunction · 0.90
handRefreshTokenFunction · 0.90

Calls 3

useUserStoreHookFunction · 0.90
setUserKeyFunction · 0.85
getItemMethod · 0.65

Tested by

no test coverage detected