feat: 重构用户认证逻辑,添加导航重定向功能,更新相关组件和路由

This commit is contained in:
2025-12-21 02:37:01 +07:00
parent b957eb7cc2
commit 7fcb2555a3
18 changed files with 104 additions and 67 deletions

View File

@@ -1,11 +1,14 @@
<script lang='ts' setup>
import type { EmailVerifyClient, PhoneNumberVerifyClient } from "@/api/types";
import { closeOutline } from "ionicons/icons";
import { authClient } from "@/auth";
import EmailLogin from "./components/email.vue";
import PhoneNumberLogin from "./components/phone-number.vue";
const { t } = useI18n();
const router = useRouter();
const route = useRoute();
const userStore = useUserStore();
async function handleSignInEmail(value: EmailVerifyClient) {
const { data } = await authClient.signIn.emailOtp({
@@ -13,7 +16,8 @@ async function handleSignInEmail(value: EmailVerifyClient) {
otp: value.otp,
});
if (data?.token) {
router.back();
userStore.setToken(data.token);
useNavigateToRedirect(route.query.redirect as string);
}
}
async function handleSignInPhoneNumber(value: PhoneNumberVerifyClient) {
@@ -24,7 +28,8 @@ async function handleSignInPhoneNumber(value: PhoneNumberVerifyClient) {
updatePhoneNumber: false,
});
if (data?.token) {
router.back();
userStore.setToken(data.token);
useNavigateToRedirect(route.query.redirect as string);
}
}
</script>
@@ -33,7 +38,11 @@ async function handleSignInPhoneNumber(value: PhoneNumberVerifyClient) {
<IonPage>
<IonHeader class="ion-no-border">
<IonToolbar class="ui-toolbar">
<ion-back-button slot="start" />
<ion-buttons slot="start">
<ion-button @click="$router.back()">
<ion-icon slot="icon-only" :icon="closeOutline" />
</ion-button>
</ion-buttons>
<ion-button slot="end" fill="clear" @click="router.push('/auth/signup')">
{{ t('auth.login.signupButton') }}
</ion-button>