ai-c/utils_new/auth.js
2026-02-02 18:21:32 +08:00

52 lines
1.2 KiB
JavaScript

const { request } = require('./request');
const login = async (userInfo) => {
const codeRes = await new Promise((resolve, reject) => {
wx.login({
success: resolve,
fail: reject
});
});
const code = codeRes.code;
const res = await request({
url: '/api/auth/wx-login',
method: 'POST',
data: { code, userInfo: userInfo || null }
});
const body = res.data || {};
if (!body.success) {
throw new Error(body.error || '登录失败');
}
const token = body.data?.token || '';
if (!token) {
throw new Error('登录失败:缺少 token');
}
wx.setStorageSync('auth_token', token);
const app = getApp();
if (app?.globalData) app.globalData.token = token;
return body.data?.user || null;
};
const fetchMe = async () => {
try {
const res = await request({ url: '/api/auth/me', method: 'GET' });
const body = res.data || {};
if (!body.success) throw new Error(body.message || '获取用户信息失败');
return body.data;
} catch (e) {
const msg = e?.userMessage || e?.message || '获取用户信息失败';
const err = new Error(msg);
err.baseUrl = e?.baseUrl;
throw err;
}
};
module.exports = {
login,
fetchMe
};