Files
DinQuant/quantdinger_vue/src/api/auth.js
T
TIANHE 445e7ac290 feat: improve authentication and user management
- Fix token missing issue after email code registration/login
- Add last login time update for code-based login
- Support email login in addition to username login
- Fix password login for code-registered users (allow setting password)
- Fix referral code parameter passing from URL hash
- Add email column to user management table
- Improve profile page layout (align card heights, reorganize layout)
- Add i18n support for Register Bonus, Referral Bonus, Code Lock Minutes, Code Max Attempts
- Fix billing service add_credits to support reference_id parameter
- Update password handling documentation
2026-01-14 20:42:10 +08:00

119 lines
2.2 KiB
JavaScript

import request from '@/utils/request'
/**
* Get security configuration (Turnstile, OAuth settings)
*/
export function getSecurityConfig () {
return request({
url: '/api/auth/security-config',
method: 'get'
})
}
/**
* User login
* @param {Object} data - { username, password, turnstile_token }
*/
export function login (data) {
return request({
url: '/api/auth/login',
method: 'post',
data
})
}
/**
* User logout
*/
export function logout () {
return request({
url: '/api/auth/logout',
method: 'post'
})
}
/**
* Get current user info
*/
export function getUserInfo () {
return request({
url: '/api/auth/info',
method: 'get'
})
}
/**
* Send verification code
* @param {Object} data - { email, type, turnstile_token }
* type: 'register' | 'login' | 'reset_password' | 'change_password' | 'change_email'
*/
export function sendVerificationCode (data) {
return request({
url: '/api/auth/send-code',
method: 'post',
data
})
}
/**
* Login with email verification code (quick login)
* @param {Object} data - { email, code, turnstile_token }
*/
export function loginWithCode (data) {
return request({
url: '/api/auth/login-code',
method: 'post',
data
})
}
/**
* User registration
* @param {Object} data - { email, code, username, password, turnstile_token }
*/
export function register (data) {
return request({
url: '/api/auth/register',
method: 'post',
data
})
}
/**
* Reset password
* @param {Object} data - { email, code, new_password, turnstile_token }
*/
export function resetPassword (data) {
return request({
url: '/api/auth/reset-password',
method: 'post',
data
})
}
/**
* Change password (for logged-in users)
* @param {Object} data - { code, new_password }
*/
export function changePassword (data) {
return request({
url: '/api/auth/change-password',
method: 'post',
data
})
}
/**
* Get Google OAuth URL
*/
export function getGoogleOAuthUrl () {
return `${process.env.VUE_APP_API_BASE_URL || ''}/api/auth/oauth/google`
}
/**
* Get GitHub OAuth URL
*/
export function getGitHubOAuthUrl () {
return `${process.env.VUE_APP_API_BASE_URL || ''}/api/auth/oauth/github`
}