完善认证功能,添加实名认证和回调处理逻辑
This commit is contained in:
21
src/actions/auth/identify.ts
Normal file
21
src/actions/auth/identify.ts
Normal file
@@ -0,0 +1,21 @@
|
||||
import {callByUser, callPublic} from '@/actions/base'
|
||||
|
||||
export async function Identify(props: {
|
||||
type: number
|
||||
name: string
|
||||
iden_no: string
|
||||
}) {
|
||||
return await callByUser<{
|
||||
identified: boolean
|
||||
target: string
|
||||
}>('/api/user/identify', props)
|
||||
}
|
||||
|
||||
export async function IdentifyCallback(props: {
|
||||
id: string
|
||||
}) {
|
||||
return await callPublic<{
|
||||
success: boolean
|
||||
message: string
|
||||
}>('/api/user/identify/callback', props)
|
||||
}
|
||||
@@ -238,6 +238,48 @@ async function callByUser<R = undefined>(
|
||||
|
||||
// endregion
|
||||
|
||||
// ======================
|
||||
// region no token
|
||||
// ======================
|
||||
|
||||
// 不需要令牌的公共API调用函数
|
||||
async function callPublic<R = undefined>(
|
||||
endpoint: string,
|
||||
data?: unknown,
|
||||
): Promise<ApiResponse<R>> {
|
||||
try {
|
||||
// 发送请求
|
||||
const requestOptions: RequestInit = {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
body: data ? JSON.stringify(data) : undefined,
|
||||
}
|
||||
|
||||
const response = await fetch(`${API_BASE_URL}${endpoint}`, requestOptions)
|
||||
|
||||
// 检查响应状态
|
||||
if (!response.ok) {
|
||||
console.log('公共接口响应不成功', `status=${response.status}`, await response.text())
|
||||
|
||||
return {
|
||||
status: response.status,
|
||||
success: false,
|
||||
message: response.status >= 500 ? '服务器错误' : '请求失败',
|
||||
}
|
||||
}
|
||||
|
||||
return handleResponse(response)
|
||||
}
|
||||
catch (e) {
|
||||
console.error('Public API call failed:', e)
|
||||
throw new Error('服务调用失败', { cause: e })
|
||||
}
|
||||
}
|
||||
|
||||
// endregion
|
||||
|
||||
// 统一响应解析
|
||||
async function handleResponse<R = undefined>(response: Response): Promise<ApiResponse<R>> {
|
||||
|
||||
@@ -286,4 +328,5 @@ export {
|
||||
getUserToken,
|
||||
callByDevice,
|
||||
callByUser,
|
||||
callPublic,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user