"use strict"; const common_vendor = require("../common/vendor.js"); const utils_api = require("./api.js"); const TOKEN_KEY = "user_token"; const USER_INFO_KEY = "user_info"; const setToken = (token) => { common_vendor.index.setStorageSync(TOKEN_KEY, token); }; const getToken = () => { return common_vendor.index.getStorageSync(TOKEN_KEY) || null; }; const removeToken = () => { common_vendor.index.removeStorageSync(TOKEN_KEY); }; const setUserInfo = (userInfo) => { common_vendor.index.setStorageSync(USER_INFO_KEY, JSON.stringify(userInfo)); }; const getUserInfo = () => { const userInfo = common_vendor.index.getStorageSync(USER_INFO_KEY); return userInfo ? JSON.parse(userInfo) : null; }; const removeUserInfo = () => { common_vendor.index.removeStorageSync(USER_INFO_KEY); }; const isLoggedIn = () => { return !!getToken(); }; const logout = () => { removeToken(); removeUserInfo(); }; const wxAuthLogin = async (code, phoneCode) => { try { console.log("[微信登录] ========== 开始登录 =========="); console.log("[微信登录] 接收到的参数:"); console.log(" - code:", code); console.log(" - phoneCode:", phoneCode); if (!code) { console.error("[微信登录] 错误:code为空!"); throw new Error("微信登录code为空,请重试"); } if (!phoneCode) { console.error("[微信登录] 错误:phoneCode为空!"); throw new Error("手机号授权code为空,请重试"); } const loginParams = { code, // 微信登录code,后端用于获取 openid 和 unionid phoneCode // 手机号授权code,后端用于获取手机号、昵称、头像等 }; console.log("[微信登录] 准备发送到后端的参数:", JSON.stringify(loginParams)); const result = await utils_api.wxLogin(loginParams); console.log("[微信登录] 后端响应:", result); if (result.code === 200 && result.data && result.data.token) { setToken(result.data.token); if (result.data.userInfo) { setUserInfo(result.data.userInfo); } console.log("[微信登录] 登录成功,token已保存"); common_vendor.index.showToast({ title: "登录成功", icon: "success", duration: 1500 }); return true; } else { console.error("[微信登录] 后端返回格式错误:", result); throw new Error(result.message || "登录返回数据格式错误"); } } catch (error) { console.error("[微信登录] ========== 登录失败 =========="); console.error("[微信登录] 错误详情:", error); common_vendor.index.showToast({ title: error.message || "登录失败,请稍后重试", icon: "none", duration: 2e3 }); return false; } }; const checkLogin = (callback) => { if (isLoggedIn()) { return true; } common_vendor.index.showModal({ title: "登录提示", content: '此功能需要登录后使用,请点击"立即登录"按钮进行授权', showCancel: false, confirmText: "我知道了" }); return false; }; exports.checkLogin = checkLogin; exports.getUserInfo = getUserInfo; exports.isLoggedIn = isLoggedIn; exports.logout = logout; exports.setUserInfo = setUserInfo; exports.wxAuthLogin = wxAuthLogin;