152 lines
5.5 KiB
JavaScript
152 lines
5.5 KiB
JavaScript
/**
|
||
* 用户认证相关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<Object>} 返回发送结果
|
||
*/
|
||
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<Object>} 返回验证结果
|
||
*/
|
||
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<Object>} 返回重置结果
|
||
*/
|
||
export const resetPassword = (resetData, config = {}) => {
|
||
return BaseRequest.post('/auth/reset-password', resetData, 'PUBLIC_REQUEST', LOADING_TEXTS.RESET_PASSWORD, config)
|
||
}
|