Стратегии вызовов Nuxt Authentication API - PullRequest
1 голос
/ 20 июня 2020

У меня есть несколько незнакомых вызовов API в текущем приложении, которое я создаю. Для настройки следующих API-интерфейсов требуется пара параметров. В настоящее время на основе субдомена в окне он выбирает параметр url для создания первого вызова API. После этого я использую магазин Vuex для хранения соответствующей информации для данных организации.

В настоящее время я пытаюсь настроить авторизацию и, к сожалению, из-за того, что он находится внутри nuxt.config.js, я не могу динамически добавлять данные из vuex хранить. Вот пример разработанных мной стратегий. В настоящее время я использую локальные стратегии по умолчанию, но не хочу делать динамические запросы URL c:

nuxt.config.js

 /*
   ** Nuxt.js modules
   */
  modules: ['@nuxtjs/axios', '@nuxtjs/auth'],
  /*
   ** Axios configuration
   */
  axios: {
    baseURL: 'https://api.getconflux.com',
    headers: {
      common: {
        Accept: 'application/json, text/plain, */*'
      }
    }
  },
  /*
   ** Auth configuration
   */
  auth: {
    strategies: {
      local: {
        endpoints: {
          login: {
            method: 'post',
            propertyName: 'token'
          },
          logout: {
            url: '/logout',
            method: 'post'
          },
          user: {
            url: '/supporters/me',
            headers: {
              'organization-id': getters.companyId,
              // Authorization Bearer needs to be automatically called from login
            },
            method: 'get',
            propertyName: 'voter'
          },
        }
      }
    },
    customStrategy: {
      user: '~/schemas/user'
    },
    redirect: {
      home: '/'
    }
  }

Текущий логин, который я установил вручную, с нет URL-адреса, как я называю это, когда загружается моя индексная страница. Это первый вызов api для построения моего состояния с необходимыми данными, которые мне нужно вызвать для последующих вызовов api после этого.

Чтобы мой запрос auth api работал, особенно вызов fetchUser() в user стратегия Мне нужно получить получатель / состояние companyId из моего магазина. Я понятия не имею, как это сделать здесь?

Кто-нибудь знает, как я могу лучше всего это реализовать?

Любая помощь будет принята с благодарностью!

Заранее спасибо !

1 Ответ

2 голосов
/ 21 июня 2020

Вы можете отключить конечную точку пользователя в файле nuxt.config.js, а затем вручную вызвать конечную точку в Vuex для получения сведений о пользователе, а затем передать их методу setUser модуля auth Nuxt JS. Итак, в вашем nuxt.config.js файле у вас должно быть это:

/*
   ** Nuxt.js modules
   */
  modules: ['@nuxtjs/axios', '@nuxtjs/auth'],
  /*
   ** Axios configuration
   */
  axios: {
    baseURL: 'https://api.getconflux.com',
    headers: {
      common: {
        Accept: 'application/json, text/plain, */*'
      }
    }
  },
  /*
   ** Auth configuration
   */
  auth: {
    strategies: {
      local: {
        endpoints: {
          login: {
            method: 'post',
            propertyName: 'token'
          },
          logout: {
            url: '/logout',
            method: 'post'
          },
          user: false
    },
    customStrategy: {
      user: '~/schemas/user'
    },
    redirect: {
      home: '/'
    }
  }

Затем в вашем магазине у вас есть действие (или мутация, делающая запрос API для получения сведений о пользователе). Затем вы звоните setUser как описано здесь

...