init.server.ts 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637
  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. if (accessCookieId.value === null || Number.isNaN(accessCookieId.value)) {
  10. redirectToLogout()
  11. return
  12. }
  13. const accessId: number = parseInt(accessCookieId.value)
  14. const accessProfile = useAccessProfileStore()
  15. accessProfile.$patch({
  16. bearer: bearer.value,
  17. id: accessId
  18. })
  19. const {em} = useEntityManager()
  20. try {
  21. await em.refreshProfile(accessId)
  22. } catch (error) {
  23. if (error instanceof UnauthorizedError) {
  24. redirectToLogout()
  25. } else {
  26. throw error
  27. }
  28. }
  29. })