✨ add automatic login
This commit is contained in:
@@ -1,10 +1,20 @@
|
||||
import {useAuthStore} from '@/store/modules/userStore.ts';
|
||||
import {useThemeStore} from "@/store/modules/themeStore.ts";
|
||||
import {langStore} from "@/store/modules/langStore.ts";
|
||||
import {useAuthSessionStore} from "@/store/modules/userSessionStore.ts";
|
||||
|
||||
export default function useStore() {
|
||||
// 是否自动登录 默认自动化登录
|
||||
function isAutoLogin() {
|
||||
const result: string | null = localStorage.getItem('auto_login');
|
||||
if (result) {
|
||||
return result === 'true';
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
return {
|
||||
user: useAuthStore(),
|
||||
user: isAutoLogin() ? useAuthStore() : useAuthSessionStore(), // 自动登录时使用 useAuthStore,否则使用 useAuthSessionStore
|
||||
theme: useThemeStore(),
|
||||
lang: langStore()
|
||||
};
|
||||
|
27
src/store/modules/userSessionStore.ts
Normal file
27
src/store/modules/userSessionStore.ts
Normal file
@@ -0,0 +1,27 @@
|
||||
import {defineStore} from 'pinia';
|
||||
import {reactive} from 'vue';
|
||||
|
||||
|
||||
export const useAuthSessionStore = defineStore(
|
||||
'user',
|
||||
() => {
|
||||
const user: any = reactive({
|
||||
accessToken: '',
|
||||
userId: '',
|
||||
refreshToken: '',
|
||||
expiresAt: 0,
|
||||
});
|
||||
|
||||
return {
|
||||
user,
|
||||
};
|
||||
},
|
||||
{
|
||||
// 开启数据持久化
|
||||
persist: {
|
||||
key: 'user',
|
||||
storage: sessionStorage,
|
||||
paths: ['user'],
|
||||
}
|
||||
}
|
||||
);
|
Reference in New Issue
Block a user