|
@@ -4,7 +4,16 @@ import { defineStore } from 'pinia';
|
|
|
import { store } from '/@/store';
|
|
|
import { RoleEnum } from '/@/enums/roleEnum';
|
|
|
import { PageEnum } from '/@/enums/pageEnum';
|
|
|
-import { ROLES_KEY, TOKEN_KEY, USER_INFO_KEY, LOGIN_INFO_KEY, DB_DICT_DATA_KEY, TENANT_ID, OAUTH2_THIRD_LOGIN_TENANT_ID } from '/@/enums/cacheEnum';
|
|
|
+import {
|
|
|
+ ROLES_KEY,
|
|
|
+ TOKEN_KEY,
|
|
|
+ USER_INFO_KEY,
|
|
|
+ LOGIN_INFO_KEY,
|
|
|
+ DB_DICT_DATA_KEY,
|
|
|
+ TENANT_ID,
|
|
|
+ OAUTH2_THIRD_LOGIN_TENANT_ID,
|
|
|
+ PWD_KEY,
|
|
|
+} from '/@/enums/cacheEnum';
|
|
|
import { getAuthCache, setAuthCache, removeAuthCache } from '/@/utils/auth';
|
|
|
import { GetUserInfoModel, LoginParams, ThirdLoginParams } from '/@/api/sys/model/userModel';
|
|
|
import { doLogout, getUserInfo, loginApi, phoneLoginApi, thirdLogin } from '/@/api/sys/user';
|
|
@@ -20,6 +29,7 @@ import { JDragConfigEnum } from '/@/enums/jeecgEnum';
|
|
|
import { useSso } from '/@/hooks/web/useSso';
|
|
|
import { getActions } from '/@/qiankun/state';
|
|
|
import { useGlobSetting } from '/@/hooks/setting';
|
|
|
+import AES from 'crypto-js/aes';
|
|
|
|
|
|
interface UserState {
|
|
|
userInfo: Nullable<UserInfo>;
|
|
@@ -85,8 +95,17 @@ export const useUserStore = defineStore({
|
|
|
hasShareTenantId(): boolean {
|
|
|
return this.shareTenantId != null && this.shareTenantId !== '';
|
|
|
},
|
|
|
+ /** 获取用户加密过的密码 */
|
|
|
+ getPassword() {
|
|
|
+ return getAuthCache<string>(PWD_KEY);
|
|
|
+ },
|
|
|
},
|
|
|
actions: {
|
|
|
+ /** 设置用户密码并加密,理论上加密、解密的工作应仅在此模块进行 */
|
|
|
+ setPassword(password: string) {
|
|
|
+ // setAuthCache(PWD_KEY, AES.encrypt(password, PWD_KEY));
|
|
|
+ setAuthCache(PWD_KEY, btoa(password));
|
|
|
+ },
|
|
|
setToken(info: string | undefined) {
|
|
|
this.token = info ? info : ''; // for null or undefined value
|
|
|
setAuthCache(TOKEN_KEY, info);
|
|
@@ -141,6 +160,8 @@ export const useUserStore = defineStore({
|
|
|
// save token
|
|
|
this.setToken(token);
|
|
|
this.setTenant(userInfo.loginTenantId);
|
|
|
+ this.setPassword(params.password);
|
|
|
+ // 将用户的用户名与密码存于数据库之中,这是为了
|
|
|
return this.afterLoginAction(goHome, data);
|
|
|
} catch (error) {
|
|
|
return Promise.reject(error);
|
|
@@ -362,15 +383,19 @@ export const useUserStore = defineStore({
|
|
|
password: 'autoAdmin123',
|
|
|
checkKey: new Date().getTime(),
|
|
|
};
|
|
|
- const data = await loginApi(loginParams);
|
|
|
- const { token } = data;
|
|
|
- this.setToken(token);
|
|
|
- const userInfo = data['userInfo'];
|
|
|
- this.setUserInfo(userInfo);
|
|
|
+ this.login(loginParams);
|
|
|
} catch (error) {
|
|
|
return Promise.reject(error);
|
|
|
}
|
|
|
},
|
|
|
+ /** 解密用户密码,理论上加密、解密的工作应仅在此模块进行 */
|
|
|
+ decryptPassword(password: string) {
|
|
|
+ // const test1 = AES.encrypt('123123', '321');
|
|
|
+ // const test2 = AES.decrypt(test1, '321');
|
|
|
+ // console.log('debug', AES.decrypt(password, PWD_KEY));
|
|
|
+ return atob(password);
|
|
|
+ // return AES.decrypt(password, PWD_KEY).toString();
|
|
|
+ },
|
|
|
},
|
|
|
});
|
|
|
|