Files
yunzerwebsiteallinone/uniapp/api/auth.js
T
2026-07-15 22:38:33 +08:00

148 lines
2.7 KiB
JavaScript

/**
* 移动端认证接口 — 对接 Go /app/*
*/
import { request, requestRaw } from '@/api/request.js'
/** 账号密码登录 */
export function login(data) {
return request({
url: '/app/login',
method: 'POST',
data
})
}
/** 发送登录验证码(账号二次校验用,需后台开启验证) */
export function sendLoginCode(data) {
return request({
url: '/app/sendLoginCode',
method: 'POST',
data
})
}
/** 手机号验证码登录 */
export function loginBySms(data) {
return request({
url: '/app/loginBySms',
method: 'POST',
data
})
}
/** 退出登录(后端无状态,失败可忽略;短超时避免卡住) */
export function logoutApi(data = {}) {
return request({
url: '/app/logout',
method: 'POST',
data,
silent: true,
timeout: 5000
})
}
/** 当前用户信息 */
export function getCurrentUser() {
return request({
url: '/app/currentUser',
method: 'GET'
})
}
/** 是否开启登录人机/验证码校验 */
export function getOpenVerify() {
return request({
url: '/app/login/getOpenVerify',
method: 'GET',
silent: true,
timeout: 8000
})
}
/** 极验 3 配置 */
export function getGeetest3Infos() {
return request({
url: '/app/login/getGeetest3Infos',
method: 'GET',
silent: true
})
}
/** 极验 4 配置 */
export function getGeetest4Infos() {
return request({
url: '/app/login/getGeetest4Infos',
method: 'GET',
silent: true,
timeout: 8000
})
}
/** 注册 */
export function register(data) {
return request({
url: '/app/register',
method: 'POST',
data
})
}
/** 发送注册验证码 */
export function sendRegisterCode(data) {
return request({
url: '/app/sendRegisterCode',
method: 'POST',
data
})
}
/** 重置密码 */
export function resetPassword(data) {
return request({
url: '/app/resetPassword',
method: 'POST',
data
})
}
/** 验证租户和账号(找回密码第一步) */
export function verifyAccount(data) {
return request({
url: '/app/verifyAccount',
method: 'POST',
data
})
}
/** 发送找回密码验证码(找回密码第二步) */
export function sendResetCode(data) {
return request({
url: '/app/sendResetCode',
method: 'POST',
data
})
}
/**
* 解析 getOpenVerify 返回的 label/value 列表
* @returns {Promise<{ openVerify: boolean, verifyType: string }>}
*/
export async function fetchVerifyConfig() {
try {
const data = await getOpenVerify()
const list = Array.isArray(data) ? data : []
const map = {}
list.forEach((item) => {
if (item && item.label) map[item.label] = item.value
})
return {
openVerify: map.openVerify === '1' || map.openVerify === 1,
verifyType: map.verifyType || ''
}
} catch {
return { openVerify: false, verifyType: '' }
}
}
export { requestRaw }