Как передать информацию пользователя из внешнего интерфейса в бэкэнд - PullRequest
0 голосов
/ 05 ноября 2019

У меня есть API-интерфейс Ruby on Rails и приложение внешнего интерфейса, написанные на Nuxt.js, интегрированные с Auth0 для проверки подлинности и Axios для обмена данными API.

Проверка подлинности работает нормально, однако интерфейс не передает информацию о пользователяхбэкенд. Только токен user_id и авторизационного носителя, но не адрес электронной почты, имя и другие атрибуты. Эти атрибуты, однако, доступны после аутентификации во внешнем интерфейсе и сохранены / доступны в хранилище Vuex.

Как указать веб-интерфейсу (Axios) включать в каждый запрос API к бэкэнду дополнительные пользовательские атрибуты? Существует ли какой-либо синтаксис для доступа к хранилищу Vuex и определения глобального атрибута Axios в nuxt.config.js или существует более простой способ сделать это?

Nuxt.config.js

auth: {

  redirect: {

    login: '/auth/login',

    callback: '/auth/callback'

  },

  strategies: {

    auth0: {

      domain: config.AUTH.DOMAIN,

      client_id: config.AUTH.CLIENT_ID,

      audience: config.AUTH.AUDIENCE

    }

  }

}

пример запроса на бэкэнд и сохранение результатов в хранилище Vuex

this.$axios.get('/organizations/4/projects')

    .then(response => {

        this.setProjects(response.data.projects);

})

    .catch(error => {

      console.log(error);

    });

1 Ответ

0 голосов
/ 12 ноября 2019

Вы можете добавить дополнительную информацию (в пользовательской заявке ) к токену доступа, тогда она будет доступна для бэкэнда при выполнении запроса.

Другая стратегия будетиспользовать конечную точку / userinfo для запроса профиля пользователя, хотя для этого потребуется дополнительный вызов из серверной части.

Здесь компромиссом является увеличенный размер токена с пользовательскими утверждениямипротив дополнительного вызова API с конечной точкой / userinfo.

...