/** * 认证接口模块 * Requirements: 1.1, 1.2, 1.3 */ import { post } from './request' import { setToken, setUserInfo } from '../utils/storage' /** * 微信登录 * WHEN a user opens the XiangYi_MiniApp for the first time, * THE XiangYi_MiniApp SHALL call WeChat login API and obtain authorization code * Requirements: 1.1, 1.2 * * @param {string} code - 微信登录授权码 * @returns {Promise} 登录响应,包含token和用户信息 */ export async function login(code) { const response = await post('/auth/login', { code }, { needAuth: false }) // 存储token和用户信息 if (response.data) { const { token, userId, nickname, avatar, xiangQinNo, isProfileCompleted, isMember, memberLevel, isRealName } = response.data if (token) { setToken(token) } setUserInfo({ userId, nickname, avatar, xiangQinNo, isProfileCompleted, isMember, memberLevel, isRealName }) } return response } /** * 绑定手机号 * WHEN a user needs to bind phone number, * THE XiangYi_MiniApp SHALL use WeChat getPhoneNumber API and send the code to endpoint * Requirements: 1.3 * * @param {string} code - 微信获取手机号的code * @returns {Promise} 绑定结果 */ export async function bindPhone(code) { const response = await post('/auth/bindPhone', { code }) return response } export default { login, bindPhone }