Files
WAI_Project_UNIX/utils/auth.ts

78 lines
1.6 KiB
TypeScript
Raw Permalink Normal View History

2026-01-21 01:37:34 +08:00
import { ref } from "vue";
import { router, storage, user } from "@/cool";
/**
*
* cool
*/
export const auth = {
/**
* ()
*/
isLogin: ref(!!uni.getStorageSync("token")),
/**
* Token
*/
getToken(): string {
const token = uni.getStorageSync("token") || "";
this.isLogin.value = !!token;
return token;
},
/**
* ( deadtime )
*/
setToken(token: string, userInfo: any) {
// 1. 设置 Token (30天过期)
storage.set("token", token, 3600 * 24 * 30);
// 2. 设置用户信息
storage.set("userInfo", userInfo, 0);
// 3. 同步内存中的 user store (核心修复:框架内部请求使用的是这个 store)
user.token = token;
user.set(userInfo);
// 4. 更新响应式状态
this.isLogin.value = true;
},
/**
*
*/
checkLogin(): boolean {
return !!this.getToken();
},
/**
* 退
*/
logout() {
storage.remove("token");
storage.remove("userInfo");
user.logout();
},
/**
* (wx.login)
*/
getCode(): Promise<string> {
return new Promise((resolve, reject) => {
uni.login({
provider: "weixin",
success: (res) => {
if (res.code) {
resolve(res.code);
} else {
reject(new Error("获取微信登录码失败"));
}
},
fail: (err) => {
reject(new Error(err.errMsg || "调用微信登录接口失败"));
}
});
});
}
};