init.server.ts 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. import UnauthorizedError from "~/services/error/UnauthorizedError";
  2. import {useRedirectToLogout} from "~/composables/utils/useRedirectToLogout";
  3. import {useRefreshProfile} from "~/composables/data/useRefreshProfile";
  4. import type {CookieRef} from "#app";
  5. export default defineNuxtPlugin(async () => {
  6. const redirectToLogout = useRedirectToLogout()
  7. const bearer: CookieRef<string | null> = useCookie('BEARER') ?? null
  8. let accessCookieId: CookieRef<string | null> = useCookie('AccessId') ?? null
  9. const switchId: CookieRef<string | null> = useCookie('SwitchAccessId') ?? null
  10. if (accessCookieId.value === null || Number.isNaN(accessCookieId.value)) {
  11. redirectToLogout()
  12. return
  13. }
  14. const accessId: number = parseInt(accessCookieId.value)
  15. const { initiateProfile } = useRefreshProfile()
  16. console.log('to!')
  17. try {
  18. await initiateProfile(
  19. accessId,
  20. bearer.value ?? '',
  21. switchId.value !== null ? parseInt(switchId.value) : null
  22. )
  23. } catch (error) {
  24. if (error instanceof UnauthorizedError) {
  25. redirectToLogout()
  26. } else {
  27. throw error
  28. }
  29. }
  30. })