feat(auth): 新增合作伙伴 token 认证接口

This commit is contained in:
2025-09-03 11:02:48 +08:00
parent af11cd5627
commit 721e07e381
2 changed files with 44 additions and 6 deletions

View File

@@ -18,8 +18,9 @@ useSeoMeta({
})
onMounted(() => {
loginState.checkSession().then(async (res) => {
if (!res && loginState.token) {
loginState.checkSession().then(async (loggedIn) => {
if (route.meta.preventLoginCheck) return
if (!loggedIn && loginState.token) {
toast.add({
title: '登录失效',
description: '登录已过期,请重新登录',
@@ -27,7 +28,7 @@ onMounted(() => {
icon: 'i-tabler-alert-triangle',
})
modal.open(ModalAuthentication)
} else if (!res && !loginState.token) {
} else if (!loggedIn && !loginState.token) {
// Prevents redirect from register page
if (route.path === '/user/register') return
router.replace('/user/authenticate')

View File

@@ -4,12 +4,14 @@ import { object, string, type InferType } from 'yup'
definePageMeta({
layout: 'authenticate',
preventLoginCheck: true
})
useSeoMeta({
title: '登录',
})
const route = useRoute()
const router = useRouter()
const toast = useToast()
const loginState = useLoginState()
@@ -327,6 +329,39 @@ const onForgetPasswordSubmit = (
})
})
}
onMounted(() => {
const { token, user_id } = route.query
if (!token || !user_id) {
return
}
loginState.token = token.toString()
loginState.user.id = user_id as unknown as number
loginState
.updateProfile()
.then(() => {
loginState.checkSession()
toast.add({
title: '登录成功',
description: `合作渠道认证成功`,
color: 'primary',
icon: 'i-tabler-login-2',
})
router.replace('/')
})
.catch((err) => {
toast.add({
title: '认证失败',
description: err.msg || 'Token 或 UserID 无效',
color: 'red',
icon: 'i-tabler-circle-x',
})
router.replace('/')
})
.finally(() => {
final_loading.value = false
})
})
</script>
<template>
@@ -574,9 +609,11 @@ const onForgetPasswordSubmit = (
color="gray"
variant="ghost"
class="!text-gray-500"
@click="() => {
router.push('/user/register')
}"
@click="
() => {
router.push('/user/register')
}
"
>
注册新账号
</UButton>