53 lines
1.1 KiB
JavaScript
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
|
|
};
|