hku-class/miniprogram/utils/auth.js
2026-05-12 23:10:05 +08:00

53 lines
1.1 KiB
JavaScript

const { get, post, clearSession } = require("./api");
function getStoredUser() {
return wx.getStorageSync("auth_user") || null;
}
function saveSession(token, user) {
wx.setStorageSync("auth_token", token);
wx.setStorageSync("auth_user", user);
const app = getApp();
if (app?.setUser) app.setUser(user);
}
function requireLogin() {
if (!wx.getStorageSync("auth_token")) {
wx.navigateTo({ url: "/pages/bind/index" });
return false;
}
return true;
}
async function refreshMe() {
const user = await get("/api/auth/me");
wx.setStorageSync("auth_user", user);
const app = getApp();
if (app?.setUser) app.setUser(user);
return user;
}
function loginWithWeChat() {
return new Promise((resolve, reject) => {
wx.login({
success: async ({ code }) => {
try {
resolve(await post("/api/wechat/login", { code }));
} catch (error) {
reject(error);
}
},
fail: () => reject(new Error("微信登录失败"))
});
});
}
module.exports = {
clearSession,
getStoredUser,
loginWithWeChat,
refreshMe,
requireLogin,
saveSession
};