Browse Source

Merge 97ec9d68ee into f4dfb68b7b

pull/7522/merge
programmer 10 hours ago
committed by GitHub
parent
commit
11c661f272
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 16
      playground/src/api/core/auth.ts
  2. 2
      playground/src/api/request.ts
  3. 3
      playground/src/store/auth.ts
  4. 5
      playground/src/utils/token-util.ts

16
playground/src/api/core/auth.ts

@ -1,4 +1,7 @@
import { useAccessStore } from '@vben/stores';
import { baseRequestClient, requestClient } from '#/api/request';
import { formatToken } from '#/utils/token-util';
export namespace AuthApi {
/** 登录接口参数 */
@ -10,6 +13,7 @@ export namespace AuthApi {
/** 登录接口返回值 */
export interface LoginResult {
accessToken: string;
refreshToken: string;
}
export interface RefreshTokenResult {
@ -31,11 +35,15 @@ export async function loginApi(data: AuthApi.LoginParams) {
* accessToken
*/
export async function refreshTokenApi() {
return baseRequestClient.post<AuthApi.RefreshTokenResult>(
const accessStore = useAccessStore();
return await baseRequestClient.post<AuthApi.RefreshTokenResult>(
'/auth/refresh',
null,
{
withCredentials: true,
headers: {
Authorization: formatToken(accessStore.refreshToken),
},
},
);
}
@ -44,8 +52,12 @@ export async function refreshTokenApi() {
* 退
*/
export async function logoutApi() {
return baseRequestClient.post('/auth/logout', null, {
const accessStore = useAccessStore();
return await baseRequestClient.post<string[]>('/auth/logout', null, {
withCredentials: true,
headers: {
Authorization: formatToken(accessStore.accessToken),
},
});
}

2
playground/src/api/request.ts

@ -65,7 +65,7 @@ function createRequestClient(baseURL: string, options?: RequestClientOptions) {
async function doRefreshToken() {
const accessStore = useAccessStore();
const resp = await refreshTokenApi();
const newToken = resp.data;
const newToken = resp.data.data; // 根据你自己的 api 返回的数据格式调整, 比如: resp.data.data.accessToken
accessStore.setAccessToken(newToken);
return newToken;
}

3
playground/src/store/auth.ts

@ -34,11 +34,12 @@ export const useAuthStore = defineStore('auth', () => {
let userInfo: null | UserInfo = null;
try {
loginLoading.value = true;
const { accessToken } = await loginApi(params);
const { refreshToken, accessToken } = await loginApi(params);
// 如果成功获取到 accessToken
if (accessToken) {
accessStore.setAccessToken(accessToken);
accessStore.setRefreshToken(refreshToken);
// 获取用户信息并存储到 accessStore 中
const [fetchUserInfoResult, accessCodes] = await Promise.all([

5
playground/src/utils/token-util.ts

@ -0,0 +1,5 @@
function formatToken(token: null | string) {
return token ? `Bearer ${token}` : null;
}
export { formatToken };
Loading…
Cancel
Save