Files
VibeCoding/WebRTCSignalServerWeb/src/stores/user.ts
TongTongStudio ded6fe5ab7 feat(android): add device activation flow and update dependencies
重构项目架构,引入启动页(SplashActivity)检查激活状态,未激活设备引导至激活页(ActivationActivity)完成provision+token流程。集成Retrofit+RxJava3网络层、Room数据库、Lifecycle组件、MMKV等依赖,升级OkHttp/Gson版本,并将构建配置从旧项目全面迁移至新项目结构。
2026-08-03 00:25:51 +08:00

40 lines
1.2 KiB
TypeScript

import { defineStore } from 'pinia';
import { ref } from 'vue';
import { adminLogin, type AdminLoginResult } from '@/api/admin';
const TOKEN_KEY = 'admin_token';
const USER_KEY = 'admin_user';
export const useUserStore = defineStore('user', () => {
const token = ref<string>(localStorage.getItem(TOKEN_KEY) || '');
const username = ref<string>(localStorage.getItem(USER_KEY) || '');
function setToken(value: string) {
if (!value) return;
token.value = value;
localStorage.setItem(TOKEN_KEY, value);
}
function setUser(value: string) {
username.value = value;
localStorage.setItem(USER_KEY, value);
}
/** 登录:使用管理员账号密码,成功后将返回的 admt_ 令牌保存到本地。 */
async function login(usernameValue: string, password: string) {
const result: AdminLoginResult = await adminLogin(usernameValue, password);
setToken(result.token);
setUser(result.username);
return result;
}
function logout() {
token.value = '';
username.value = '';
localStorage.removeItem(TOKEN_KEY);
localStorage.removeItem(USER_KEY);
}
return { token, username, setToken, setUser, login, logout };
});