Skip to content

Commit

Permalink
feat: 登录逻辑修改,接入项目
Browse files Browse the repository at this point in the history
  • Loading branch information
gavinZhang001 committed Sep 22, 2023
1 parent a7f3f9f commit f77e30f
Show file tree
Hide file tree
Showing 8 changed files with 40 additions and 14 deletions.
4 changes: 2 additions & 2 deletions src/api/rg/inner/baseReqeust.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,6 @@ export function baseRequest<T = any>(
vOptions: optionsType = { cancelFn: undefined } as optionsType,
) {
const opt: optionsType = vOptions ? { ...vOptions } : { cancelFn: undefined };
opt.cancelFn! = cancelFnRef;
return request.doRequest<T>(uri, 'post', params, opt);
opt.cancelFn = cancelFnRef;
return request.doRequest<T>(uri, 'post', params, opt as any);
}
2 changes: 1 addition & 1 deletion src/api/rg/loginApi.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,6 @@ export function checkLoginedApi() {
return baseRequest<ApiType.ILoginUserInfo>('/site/check-login', {});
}

export function logout() {
export function logoutApi() {
return baseRequest('/site/logout', {});
}
5 changes: 4 additions & 1 deletion src/api/rg/userApi.ts
Original file line number Diff line number Diff line change
@@ -1,2 +1,5 @@
import { baseRequest } from '@/api/rg/inner/baseReqeust';


export function getLoginUserInfoApi() {
return baseRequest<Record<any, any>>('/personal/info', {});
}
3 changes: 2 additions & 1 deletion src/router/guard/permissionGuard.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ export function createPermissionGuard(router: Router) {
const userStore = useUserStoreWithOut();
const permissionStore = usePermissionStoreWithOut();
router.beforeEach(async (to, from, next) => {
console.log('router.beforeEach', to);
if (
from.path === ROOT_PATH &&
to.path === PageEnum.BASE_HOME &&
Expand Down Expand Up @@ -70,7 +71,6 @@ export function createPermissionGuard(router: Router) {
next(redirectData);
return;
}

// Jump to the 404 page after processing the login
if (
from.path === LOGIN_PATH &&
Expand All @@ -84,6 +84,7 @@ export function createPermissionGuard(router: Router) {
// get userinfo while last fetch time is empty
if (userStore.getLastUpdateTime === 0) {
try {
console.log('step::获取用户信息');
await userStore.getUserInfoAction();
} catch (err) {
next();
Expand Down
29 changes: 24 additions & 5 deletions src/store/modules/user.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@ import { PageEnum } from '/@/enums/pageEnum';
import { ROLES_KEY, TOKEN_KEY, USER_INFO_KEY } from '/@/enums/cacheEnum';
import { getAuthCache, setAuthCache } from '/@/utils/auth';
import { GetUserInfoModel, LoginParams } from '/@/api/sys/model/userModel';
import { doLogout, getUserInfo, loginApi } from '/@/api/sys/user';
import { doLogout } from '/@/api/sys/user';
import {loginApi, logoutApi} from '/@/api/rg/loginApi';
import { useI18n } from '/@/hooks/web/useI18n';
import { useMessage } from '/@/hooks/web/useMessage';
import { router } from '/@/router';
Expand All @@ -16,6 +17,7 @@ import { RouteRecordRaw } from 'vue-router';
import { PAGE_NOT_FOUND_ROUTE } from '/@/router/routes/basic';
import { isArray } from '/@/utils/is';
import { h } from 'vue';
import { getLoginUserInfoApi } from '@/api/rg/userApi';

interface UserState {
userInfo: Nullable<UserInfo>;
Expand Down Expand Up @@ -44,6 +46,7 @@ export const useUserStore = defineStore({
return state.userInfo || getAuthCache<UserInfo>(USER_INFO_KEY) || {};
},
getToken(state): string {
//store 状态加载需要过程,所以直接从这里取 token
return state.token || getAuthCache<string>(TOKEN_KEY);
},
getRoleList(state): RoleEnum[] {
Expand Down Expand Up @@ -90,8 +93,10 @@ export const useUserStore = defineStore({
): Promise<GetUserInfoModel | null> {
try {
const { goHome = true, mode, ...loginParams } = params;
const data = await loginApi(loginParams, mode);
const { token } = data;

const data = await loginApi(params.username, params.password);

const { login_token: token } = data;

// save token
this.setToken(token);
Expand Down Expand Up @@ -132,7 +137,21 @@ export const useUserStore = defineStore({
},
async getUserInfoAction(): Promise<UserInfo | null> {
if (!this.getToken) return null;
const userInfo = await getUserInfo();
const resUserInfo = await getLoginUserInfoApi();
// TODO:: UserInfo 特殊创建
const userInfo = {
roles: [],
// 用户id
userId: resUserInfo.user_id,
// 用户名
username: resUserInfo.nickname,
// 真实名字
realName: resUserInfo.nickname,
// 头像
avatar: '',
// 介绍
desc: '',
};
const { roles = [] } = userInfo;
if (isArray(roles)) {
const roleList = roles.map((item) => item.value) as RoleEnum[];
Expand Down Expand Up @@ -175,7 +194,7 @@ export const useUserStore = defineStore({
async logout(goLogin = false, useRedirect: boolean = false) {
if (this.getToken) {
try {
await doLogout();
await logoutApi();
} catch {
console.log('注销Token失败');
}
Expand Down
1 change: 1 addition & 0 deletions src/utils/http/HttpUtil.ts
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,7 @@ const request = createRequest<ReqCustomOptions, any>(
},
});
}
return Promise.reject();
}
},
},
Expand Down
2 changes: 1 addition & 1 deletion src/utils/http/inner/useRequestHelper.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ export function apiReqHelper() {
return {
[ConstDefs.ServerApi.reqestHeaderKeysEnum.kContentType]: 'application/x-www-form-urlencoded',
[ConstDefs.ServerApi.reqestHeaderKeysEnum.kLoginToken]:
useUserStoreWithOut().getLoginInfo?.login_token || 'nologin',
useUserStoreWithOut().getToken || 'nologin',
[ConstDefs.ServerApi.reqestHeaderKeysEnum.kPlatform]: 'pc',
[ConstDefs.ServerApi.reqestHeaderKeysEnum.kProject]:
useUserStoreWithOut().getLoginInfo?.project || 'nologin',
Expand Down
8 changes: 5 additions & 3 deletions src/views/sys/login/LoginForm.vue
Original file line number Diff line number Diff line change
Expand Up @@ -119,8 +119,8 @@
const rememberMe = ref(false);
const formData = reactive({
account: 'vben',
password: '123456',
account: 'biadmin9527',
password: 'rg1234567',
});
const { validForm } = useFormValid(formRef);
Expand All @@ -147,9 +147,11 @@
});
}
} catch (error) {
console.log(error);
createErrorModal({
title: t('sys.api.errorTip'),
content: (error as unknown as Error).message || t('sys.api.networkExceptionMsg'),
content: error.resErr.retMsg || t('sys.api.networkExceptionMsg'),
getContainer: () => document.body.querySelector(`.${prefixCls}`) || document.body,
onOk: () => {
console.log('click ok');
Expand Down

0 comments on commit f77e30f

Please sign in to comment.