init.server.ts 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import {useAccessProfileStore} from "~/stores/accessProfile";
  2. import {useEntityManager} from "~/composables/data/useEntityManager";
  3. import UnauthorizedError from "~/services/error/UnauthorizedError";
  4. import {useRedirectToLogout} from "~/composables/utils/useRedirectToLogout";
  5. export default defineNuxtPlugin(async () => {
  6. const redirectToLogout = useRedirectToLogout()
  7. const bearer = useCookie('BEARER')
  8. let accessCookieId = useCookie('AccessId')
  9. const switchId = useCookie('SwitchAccessId')
  10. if (accessCookieId.value === null || Number.isNaN(accessCookieId.value)) {
  11. redirectToLogout()
  12. return
  13. }
  14. const accessId: number = parseInt(accessCookieId.value)
  15. const accessProfile = useAccessProfileStore()
  16. accessProfile.$patch({
  17. bearer: bearer.value,
  18. id: accessId,
  19. switchId: switchId.value !== null ? parseInt(switchId.value) : null
  20. })
  21. const {em} = useEntityManager()
  22. try {
  23. await em.refreshProfile(accessId)
  24. } catch (error) {
  25. if (error instanceof UnauthorizedError) {
  26. redirectToLogout()
  27. } else {
  28. throw error
  29. }
  30. }
  31. })