diff --git a/frontend/pages/signin/index.vue b/frontend/pages/signin/index.vue index 33f65fb..414d858 100644 --- a/frontend/pages/signin/index.vue +++ b/frontend/pages/signin/index.vue @@ -7,6 +7,8 @@ import { useVuelidate } from "@vuelidate/core"; import useOtp from "~/composables/api/auth/useOtp"; import { useTimer } from "~/composables/useTimer"; import useSignIn from "~/composables/api/auth/useSignIn"; +import { definePageMeta } from "#imports"; +import useGetAccount from "~/composables/api/account/useGetAccount"; // types @@ -14,10 +16,21 @@ type LoginInfo = { phone: string; }; +// meta + +definePageMeta({ + middleware: ["check-is-not-logged-in"] +}); + // state const { addToast } = useToast(); +const { updateToken } = useAuth(); + +const { refetch: refetchAccount } = useGetAccount(); + + const showOtp = ref(false); const otpCode = ref([]); @@ -86,10 +99,24 @@ const handleLogin = async () => { } } else { try { - await signIn({ + const response = await signIn({ otp: otpCode.value.join(""), phone: `0${loginInfo.value.phone}` }); + + updateToken(response.access); + await refetchAccount(); + + addToast({ + message: "با موفقیت وارد شدید", + options: { + status: "success" + } + }); + + setTimeout(() => { + navigateTo("/"); + }, 2000); } catch (e) { otpCode.value = []; addToast({ message: "مشکلی پیش آمده" });