pet/http/api/auth.js

152 lines
5.5 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* 用户认证相关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)
}