From d0b2bf3250797064198bd48ef70212db1d180b73 Mon Sep 17 00:00:00 2001 From: QiTao Weng Date: Sat, 9 Apr 2022 13:26:54 -0500 Subject: [PATCH 1/4] UI update --- src/App.vue | 8 ++++++-- src/components/Home.vue | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/App.vue b/src/App.vue index 9e482ed..06aa3e6 100644 --- a/src/App.vue +++ b/src/App.vue @@ -8,13 +8,17 @@ import Home from './components/Home.vue' diff --git a/src/components/Home.vue b/src/components/Home.vue index 2486976..70a2de7 100644 --- a/src/components/Home.vue +++ b/src/components/Home.vue @@ -20,7 +20,7 @@ const login = () => { diff --git a/src/pages/Login.vue b/src/pages/Login.vue deleted file mode 100644 index 70a2de7..0000000 --- a/src/pages/Login.vue +++ /dev/null @@ -1,33 +0,0 @@ - - - - - diff --git a/src/router.ts b/src/router.ts index 0d34fd1..c747a57 100644 --- a/src/router.ts +++ b/src/router.ts @@ -1,5 +1,5 @@ import { createRouter, createWebHistory } from 'vue-router' -import Home from './pages/Login.vue' +import Home from './pages/Home.vue' const routes = [ { @@ -17,11 +17,6 @@ const routes = [ name: 'Editor', component: () => import('./pages/Editor.vue'), }, - { - path:'/auth', - name: 'Auth', - component: () => import('./pages/Auth.vue'), - }, ] const router = createRouter({ From 7e016ad147c4b1d016e519f13cf14b8f02d52685 Mon Sep 17 00:00:00 2001 From: QiTao Weng Date: Sun, 10 Apr 2022 00:25:44 -0500 Subject: [PATCH 4/4] Reformatting, removing auth0, add login status checks for redirects and logout button visibility, and fixing api call parameters --- src/App.vue | 50 ++++++++++++-- src/components/Login.vue | 143 ++++++++++++++++++++++++++++++--------- src/main.ts | 9 --- src/pages/Editor.vue | 34 +++++++++- src/pages/Scratch.vue | 65 +++++++++--------- src/support/auth.ts | 10 +++ 6 files changed, 232 insertions(+), 79 deletions(-) create mode 100644 src/support/auth.ts diff --git a/src/App.vue b/src/App.vue index 5544ba7..c61b401 100644 --- a/src/App.vue +++ b/src/App.vue @@ -4,10 +4,51 @@ import Home from "./pages/Home.vue"; // Check out https://v3.vuejs.org/api/sfc-script-setup.html#sfc-script-setup import { MathStatement } from "./support/parse"; import { MathPage } from "./support/page"; -import { ref } from "vue"; +import { onMounted, ref } from "vue"; +import { checkLoggedIn, loggedOut, loggedIn } from "./support/auth"; +import router from "./router"; (window as any).Stmt = MathStatement; (window as any).Pg = MathPage; + +const status = ref(checkLoggedIn()) + +; (async () => { + const response = await fetch('/api/login/status/', { + method: 'GET', + headers: { + 'Accept': 'application/json', + }, + }) + const res = (await response.json()) as unknown as any + if (res.data.hasUser) { + loggedIn() + } + status.value = checkLoggedIn() + })() + +onMounted(() => { + status.value = checkLoggedIn() + console.log(status.value) +}) + +router.afterEach(() => { + status.value = checkLoggedIn() + console.log(status.value) +}) + +const logout = async () => { + const response = await fetch('/api/logout/', { + method: 'POST', + headers: { + 'Accept': 'application/json', + }, + }) + loggedOut() + status.value = checkLoggedIn() + router.push({path: '/'}) +} +