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: '/'}) +} +