1
This commit is contained in:
@@ -4,6 +4,7 @@ import { ElMessage } from 'element-plus'
|
||||
import { User } from '@element-plus/icons-vue'
|
||||
import { authApi } from '../../api/auth'
|
||||
import { deviceApi } from '../../api/device'
|
||||
import { getOrCreateDeviceId } from '../../utils/deviceId'
|
||||
|
||||
interface Props {
|
||||
modelValue: boolean
|
||||
@@ -11,7 +12,7 @@ interface Props {
|
||||
|
||||
interface Emits {
|
||||
(e: 'update:modelValue', value: boolean): void
|
||||
(e: 'loginSuccess', data: { token: string; user: any }): void
|
||||
(e: 'loginSuccess', data: { token: string; permissions?: string; expireTime?: string }): void
|
||||
(e: 'showRegister'): void
|
||||
}
|
||||
|
||||
@@ -31,16 +32,26 @@ async function handleAuth() {
|
||||
|
||||
authLoading.value = true
|
||||
try {
|
||||
await deviceApi.register({ username: authForm.value.username })
|
||||
const loginRes: any = await authApi.login(authForm.value)
|
||||
const data = loginRes?.data || loginRes
|
||||
// 获取或生成设备ID
|
||||
const deviceId = await getOrCreateDeviceId()
|
||||
|
||||
// 注册设备
|
||||
await deviceApi.register({
|
||||
username: authForm.value.username,
|
||||
deviceId: deviceId,
|
||||
os: navigator.platform
|
||||
})
|
||||
|
||||
// 登录
|
||||
const loginRes: any = await authApi.login({
|
||||
...authForm.value,
|
||||
clientId: deviceId
|
||||
})
|
||||
|
||||
emit('loginSuccess', {
|
||||
token: data.token,
|
||||
user: {
|
||||
username: data.username,
|
||||
permissions: data.permissions
|
||||
}
|
||||
token: loginRes.data.accessToken || loginRes.data.token,
|
||||
permissions: loginRes.data.permissions,
|
||||
expireTime: loginRes.data.expireTime
|
||||
})
|
||||
ElMessage.success('登录成功')
|
||||
resetForm()
|
||||
|
||||
Reference in New Issue
Block a user