Fix invalid token redirection

This commit is contained in:
Douglas Barone 2023-07-04 09:39:44 -04:00
parent ae0a1a817d
commit a3c209da65
3 changed files with 18 additions and 17 deletions

View File

@ -5,24 +5,30 @@
</div> </div>
<v-app> <v-app>
<v-main> <v-main>
<router-view v-slot="{ Component }">
<keep-alive> <keep-alive>
<RouterView /> <component :is="Component" />
</keep-alive> </keep-alive>
</router-view>
</v-main> </v-main>
</v-app> </v-app>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { useRouter } from 'vue-router'
import { useAppStore } from './store/appStore' import { useAppStore } from './store/appStore'
import { onMounted, onBeforeMount } from 'vue' import { onMounted } from 'vue'
const router = useRouter()
const appStore = useAppStore() const appStore = useAppStore()
onMounted(async () => { onMounted(async () => {
await appStore.fetchMe() await appStore.fetchMe()
})
onBeforeMount(() => { if (!appStore.me) {
console.log('Not logged in')
router.replace({ name: 'Login' })
}
appStore.selectedCampus = appStore.me?.campus || '' appStore.selectedCampus = appStore.me?.campus || ''
}) })
</script> </script>

View File

@ -41,7 +41,7 @@ const routes = [
component: () => import('@/layouts/single/Default.vue'), component: () => import('@/layouts/single/Default.vue'),
children: [ children: [
{ {
path: ':serialNumber', path: '',
name: 'Printer', name: 'Printer',
// route level code-splitting // route level code-splitting
// this generates a separate chunk (about.[hash].js) for this route // this generates a separate chunk (about.[hash].js) for this route

View File

@ -62,20 +62,15 @@
<script lang="ts" setup> <script lang="ts" setup>
import { ref, reactive } from 'vue' import { ref, reactive } from 'vue'
import { api } from '@/api' import { api } from '@/api'
import { getJwtToken, saveJwtToken } from '@/auth' import { saveJwtToken } from '@/auth'
import { useRouter } from 'vue-router' import { useRouter } from 'vue-router'
import { useAppStore } from '@/store/appStore' import { useAppStore } from '@/store/appStore'
const appStore = useAppStore()
const router = useRouter() const router = useRouter()
const token = getJwtToken() if (appStore.me) router.push({ name: 'Home' })
const { fetchMe } = useAppStore()
if (token) {
fetchMe()
router.replace({ name: 'Home' })
}
const username = ref<string>('') const username = ref<string>('')
const password = ref<string>('') const password = ref<string>('')
@ -102,7 +97,7 @@ async function login() {
saveJwtToken(token) saveJwtToken(token)
await fetchMe() await appStore.fetchMe()
router.push({ name: 'Home' }) router.push({ name: 'Home' })
} catch (error: any) { } catch (error: any) {