init.server.ts 1018 B

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