/** * 用户认证相关API接口模块 * 提供用户登录、注册、认证、短信验证等相关的API接口 */ import BaseRequest from '../utils/request-helper.js' import { LOADING_TEXTS } from '../config/constants.js' // ==================== 用户登录相关API ==================== /** * 用户账号密码登录 * @param {Object} loginData 登录数据对象 * @param {string} loginData.username 用户名或邮箱 * @param {string} loginData.password 用户密码 * @param {boolean} [loginData.rememberMe] 是否记住登录状态 * @param {Object} [config] 自定义请求配置 * @returns {Promise} 返回认证结果,包含token和用户信息 */ export const userLogin = (loginData, config = {}) => { return BaseRequest.post('/auth/login', loginData, 'PUBLIC_REQUEST', LOADING_TEXTS.LOGIN, config) } /** * 微信授权登录 * @param {Object} wxData 微信登录数据对象 * @param {string} wxData.code 微信登录凭证code * @param {string} [wxData.encryptedData] 加密的用户数据 * @param {string} [wxData.iv] 初始向量 * @param {Object} [config] 自定义请求配置 * @returns {Promise} 返回认证结果,包含token和用户信息 */ export const wxLogin = (wxData, config = {}) => { return BaseRequest.post('/wechat/user/mini/login', wxData, 'PUBLIC_REQUEST', LOADING_TEXTS.LOGIN, config) } /** * 微信手机号登录 * @param {Object} phoneData 手机号登录数据对象 * @param {string} phoneData.code 微信登录code * @param {string} phoneData.encryptedData 加密的手机号数据 * @param {string} phoneData.iv 初始向量 * @param {Object} [config] 自定义请求配置 * @returns {Promise} 返回登录结果,包含token和用户信息 */ export const wxPhoneLogin = (phoneData, config = {}) => { return BaseRequest.post('/wechat/user/mini/phone-login', phoneData, 'PUBLIC_REQUEST', LOADING_TEXTS.LOGIN, config) } /** * 更新用户手机号 * @param {Object} phoneData 手机号授权数据对象 * @param {string} phoneData.encryptedData 加密的手机号数据 * @param {string} phoneData.iv 初始向量 * @param {Object} [config] 自定义请求配置 * @returns {Promise} 返回解密后的手机号 */ export const updatePhoneNumber = (phoneData, config = {}) => { return BaseRequest.post('/user/wechat/mini/phone-update', phoneData, 'AUTHENTICATED_UPDATE', LOADING_TEXTS.PHONE_VERIFY, config) } /** * 获取用户信息 * @param {Object} [config] 自定义请求配置 * @returns {Promise} 返回用户信息 */ export const getUserInfo = (config = {}) => { return BaseRequest.get('/user/wechat/mini/userinfo', {}, 'AUTHENTICATED_QUERY_WITH_LOADING', config) } /** * 更新用户信息 * @param {Object} userData 用户数据对象 * @param {Object} [config] 自定义请求配置 * @returns {Promise} 返回更新结果 */ export const updateUserInfo = (userData, config = {}) => { return BaseRequest.put('/user/wechat/mini/userinfo', userData, 'AUTHENTICATED_UPDATE', LOADING_TEXTS.UPDATING_USER_INFO, config) } // ==================== 用户注册相关API ==================== /** * 用户账号注册 * @param {Object} registerData 注册数据对象 * @param {string} registerData.username 用户名 * @param {string} registerData.password 密码 * @param {string} registerData.email 邮箱地址 * @param {string} [registerData.phoneNumber] 手机号码 * @param {string} [registerData.inviteCode] 邀请码 * @param {Object} [config] 自定义请求配置 * @returns {Promise} 返回注册结果,包含token和用户信息 */ export const userRegister = (registerData, config = {}) => { return BaseRequest.post('/auth/register', registerData, 'PUBLIC_REQUEST', LOADING_TEXTS.REGISTER, config) } // ==================== 会话管理相关API ==================== /** * 用户登出 * @param {Object} [config] 自定义请求配置 * @returns {Promise} 返回登出结果 */ export const userLogout = (config = {}) => { return BaseRequest.post('/auth/logout', {}, 'AUTHENTICATED_UPDATE', LOADING_TEXTS.LOGOUT, config) } /** * 刷新访问令牌 * @param {Object} [config] 自定义请求配置 * @param {string} [config.refreshToken] 自定义刷新令牌,不传则从本地存储获取 * @returns {Promise} 返回新的token信息 */ export const refreshToken = (config = {}) => { const refreshTokenValue = config.refreshToken || uni.getStorageSync('refreshToken') return BaseRequest.post('/auth/refresh', { refreshToken: refreshTokenValue }, 'SILENT_REQUEST', null, config) } // ==================== 短信验证相关API ==================== /** * 发送短信验证码 * @param {Object} phoneData 手机号数据对象 * @param {Object} [config={}] 自定义请求配置 * @returns {Promise} 返回发送结果 */ export const sendSmsCode = (phoneData, config = {}) => { return BaseRequest.post('/sms/send', phoneData, 'PUBLIC_REQUEST', LOADING_TEXTS.SEND_SMS, config) } /** * 验证短信验证码 * @param {Object} verifyData 验证数据对象 * @param {Object} [config={}] 自定义请求配置 * @returns {Promise} 返回验证结果 */ export const verifySmsCode = (verifyData, config = {}) => { return BaseRequest.post('/sms/verify', verifyData, 'PUBLIC_REQUEST', LOADING_TEXTS.VERIFY_SMS, config) } /** * 重置用户密码 * @param {Object} resetData 重置密码数据对象 * @param {Object} [config={}] 自定义请求配置 * @returns {Promise} 返回重置结果 */ export const resetPassword = (resetData, config = {}) => { return BaseRequest.post('/auth/reset-password', resetData, 'PUBLIC_REQUEST', LOADING_TEXTS.RESET_PASSWORD, config) }