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. console.log(accessCookieId.value, Number.isNaN(accessCookieId.value))
  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. })
  20. const {em} = useEntityManager()
  21. try {
  22. await em.refreshProfile(accessId)
  23. } catch (error) {
  24. if (error instanceof UnauthorizedError) {
  25. redirectToLogout()
  26. } else {
  27. throw error
  28. }
  29. }
  30. })