Как установить пользователя в nuxt auth после обновления?

Вот моя конфигурация аутентификации:

      auth: {
    strategies: {
      local: {
        scheme: 'refresh',
        token: {
          property: 'jwtToken',
        },
        refreshToken: {
          property: 'refreshToken',
          data: 'refreshToken',
        },
        user: false,
        endpoints: {
          login: { url: '/api/account/authenticate', method: 'post' },
          logout: { url: '/api/account/logout', method: 'post' },
          refresh: { url: '/api/account/refresh-token', method: 'post' },
          user: false,
        },
      },
    },
  },

Вот мои действия в магазине для авторизации:

      async login({ commit }, data) {
    try {
      const {
        data: { jwtToken, refreshToken },
      } = await this.$auth.loginWith('local', { data })
      await this.$auth.setUserToken(jwtToken, refreshToken)

      const decodedJwt = jwtDecode(jwtToken)
      this.$auth.setUser({ userId: decodedJwt.sub })

      await this.$router.push('/dashboard')
    } catch (e) {
      this.$n?.myError()
    }
  },
  async logout() {
    const refreshToken = localStorage.getItem('auth._refresh_token.local')
    await this.$auth.logout({ data: { refreshToken } })
  },

Конечно, после обновления свойство пользователя внутри $ auth удаляется. Я хотел бы снова установить его при обновлении страницы. Как я могу реализовать это без добавления нового API для пользователя? Я пробовал создавать для этого промежуточные программы, но они работают для всех маршрутов вместо указанных. Мне просто нужно простое решение, например, получить токен jwt из localStorage и получить от него userId.

0 ответов

Другие вопросы по тегам