feat(#27): Set up consola logger, make use of log levels in backend and frontend
This commit is contained in:
@@ -3,14 +3,16 @@
|
||||
import { appendResponseHeader } from 'h3'
|
||||
import { parse, parseSetCookie, serialize } from 'cookie-es'
|
||||
import { jwtDecode, type JwtPayload } from 'jwt-decode'
|
||||
import { useLogger } from '../composables/useLogger'
|
||||
|
||||
export default defineNuxtRouteMiddleware(async (to, from) => {
|
||||
const nuxtApp = useNuxtApp()
|
||||
// Don't run on client hydration when server rendered
|
||||
if (import.meta.client && nuxtApp.isHydrating && nuxtApp.payload.serverRendered) return
|
||||
|
||||
console.log('🔍 Middleware: refreshToken.global.ts')
|
||||
console.log(` from: ${from.fullPath} to: ${to.fullPath}`)
|
||||
const logger = useLogger().withTag('refreshToken')
|
||||
logger.debug('🔍 Middleware: refreshToken.global.ts')
|
||||
logger.debug(`from: ${from.fullPath} to: ${to.fullPath}`)
|
||||
|
||||
const { session, clear: clearSession, fetch: fetchSession } = useUserSession()
|
||||
// Ignore if no tokens
|
||||
@@ -25,11 +27,11 @@ export default defineNuxtRouteMiddleware(async (to, from) => {
|
||||
|
||||
// Both tokens expired, clearing session
|
||||
if (isExpired(accessPayload) && isExpired(refreshPayload)) {
|
||||
console.info('both tokens expired, clearing session')
|
||||
logger.info('both tokens expired, clearing session')
|
||||
await clearSession()
|
||||
return navigateTo('/login')
|
||||
} else if (isExpired(accessPayload)) {
|
||||
console.info('access token expired, refreshing')
|
||||
logger.info('access token expired, refreshing')
|
||||
await useRequestFetch()('/api/jwt/refresh', {
|
||||
method: 'POST',
|
||||
onResponse({ response: { headers } }: { response: { headers: Headers } }) {
|
||||
@@ -41,7 +43,7 @@ export default defineNuxtRouteMiddleware(async (to, from) => {
|
||||
const { name, value } = parseSetCookie(setCookie)
|
||||
|
||||
if (name === runtimeConfig.session.name) {
|
||||
console.log('updating headers.cookie to', value)
|
||||
logger.debug('updating headers.cookie to', value)
|
||||
const cookies = parse(serverEvent.headers.get('cookie') || '')
|
||||
|
||||
// set or overwrite existing cookie
|
||||
@@ -64,10 +66,10 @@ export default defineNuxtRouteMiddleware(async (to, from) => {
|
||||
}
|
||||
},
|
||||
onError() {
|
||||
console.error('🔍 Middleware: Token refresh failed')
|
||||
logger.error('🔍 Middleware: Token refresh failed')
|
||||
const { loggedIn } = useUserSession()
|
||||
if (!loggedIn.value) {
|
||||
console.log('🔍 Middleware: User not logged in, redirecting to /login')
|
||||
logger.debug('🔍 Middleware: User not logged in, redirecting to /login')
|
||||
return navigateTo('/login')
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user