From 6678c6d1919b19b0f7942badd4a8d426338d5b1d Mon Sep 17 00:00:00 2001 From: artem Date: Sat, 4 May 2024 07:51:09 +0300 Subject: [PATCH] if not auth - redirect to login, set profile after siginin\signup --- src/layouts/AppLayout.vue | 5 ++ src/layouts/AuthLayout.vue | 1 - src/pages/auth/CheckTheEmail.vue | 3 + src/pages/auth/Login.vue | 10 ++- src/pages/auth/Signup.vue | 1 + src/pages/preferences/Preferences.vue | 2 +- src/pages/preferences/settings/Settings.vue | 72 +-------------------- src/stores/user-store.ts | 24 ++++++- 8 files changed, 42 insertions(+), 76 deletions(-) diff --git a/src/layouts/AppLayout.vue b/src/layouts/AppLayout.vue index ccf5280..5338dd3 100644 --- a/src/layouts/AppLayout.vue +++ b/src/layouts/AppLayout.vue @@ -47,6 +47,7 @@ diff --git a/src/pages/auth/CheckTheEmail.vue b/src/pages/auth/CheckTheEmail.vue index 2a04ada..5e46396 100644 --- a/src/pages/auth/CheckTheEmail.vue +++ b/src/pages/auth/CheckTheEmail.vue @@ -34,7 +34,10 @@ const submit = () => { code: code.value, }) .then((response) => { + localStorage.setItem('token', response.data.token); + localStorage.setItem('profile', JSON.stringify(response.data.profile)); + router.push({ name: "dashboard" }).catch((error) => { }); }).catch((error) => { if (error.response.data.detail.code_string == "ObjectNotFound") { diff --git a/src/pages/auth/Login.vue b/src/pages/auth/Login.vue index 3bee1c6..f2e6acf 100644 --- a/src/pages/auth/Login.vue +++ b/src/pages/auth/Login.vue @@ -92,10 +92,18 @@ const submit = () => { }) .then((response) => { localStorage.setItem('token', response.data.token); + localStorage.setItem('profile', JSON.stringify(response.data.profile)); init({ message: "Вы успешно вошли!", color: "success" }); push({ name: "dashboard" }); }) - .catch((error) => {}); + .catch((error) => { + + init({ + message: "Неверный логин или пароль", + color: "error", + }); + + }); } }; diff --git a/src/pages/auth/Signup.vue b/src/pages/auth/Signup.vue index 81f8d58..6fa51ca 100644 --- a/src/pages/auth/Signup.vue +++ b/src/pages/auth/Signup.vue @@ -104,6 +104,7 @@ const submit = () => { }) .then((response) => { localStorage.setItem('token', response.data.token); + localStorage.setItem('profile', JSON.stringify(response.data.profile)); init({ message: "Вы успешно вошли", color: "success", diff --git a/src/pages/preferences/Preferences.vue b/src/pages/preferences/Preferences.vue index 18eb661..e11bf48 100644 --- a/src/pages/preferences/Preferences.vue +++ b/src/pages/preferences/Preferences.vue @@ -1,5 +1,5 @@ diff --git a/src/stores/user-store.ts b/src/stores/user-store.ts index a70f2cc..1dd5bb8 100644 --- a/src/stores/user-store.ts +++ b/src/stores/user-store.ts @@ -2,9 +2,29 @@ import { defineStore } from "pinia"; export const useUserStore = defineStore("user", { state: () => { + if (!localStorage.getItem("profile")) { + return { + userName: "", + email: "", + memberSince: "", + pfp: "", + is2FAEnabled: false, + } + } + const dataUser = JSON.parse(localStorage.getItem("profile")!); + let userName = ""; + if (dataUser.first_name) { + userName = dataUser.first_name; + } + if (dataUser.surname) { + if (userName.length == 0) { + userName += " "; + } + userName += dataUser.surname; + } return { - userName: "Vasili Savitski", - email: "vasili@gmail.com", + userName: userName, + email: dataUser.email || "", memberSince: "8/12/2020", pfp: "https://picsum.photos/id/22/200/300", is2FAEnabled: false,