119 lines
2.2 KiB
JavaScript
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`
|
||
|
|
}
|