Промежуточное ПО Nuxt Auth делает пустой запрос к конечной точке пользователя - PullRequest
0 голосов
/ 10 апреля 2020

все. Я пытаюсь построить модуль входа в систему. Я использую Nuxt auth для обработки моего рабочего процесса и использую flask для моего RestAPI. Я установил параметры аутентификации в моем nuxt.config.js, как указано в документах , и адаптировал URL для моего flask API, как показано ниже:

auth: {
    strategies: {
      local: {
        endpoints: {
          login: { url: '/auth/', method: 'post', propertyName: 'token' },
          logout: { url: '/auth/logout', method: 'post' },
          user: { url: '/users/username/', method: 'post', propertyName: 'User' }
        },
        // tokenRequired: true,
        // tokenType: 'bearer'
        // autoFetchUser: true
      }
    }
  }

Это мой компонент входа в систему:

<template>
  <div>
    <form @submit.prevent="userLogin">
      <div>
        <label>Username</label>
        <input type="text" v-model="login.username" />
      </div>
      <div>
        <label>Password</label>
        <input type="text" v-model="login.password" />
      </div>
      <div>
        <button type="submit">Submit</button>
      </div>
    </form>
  </div>
</template>

<script>
export default {
  data() {
    return {
      login: {
        username: 'newUser27',
        password: 'ninjaTurtles1!'
      }
    }
  },
  methods: {
    async userLogin() {
      try {

        let response = await this.$auth.loginWith('local', { data: this.login })

        console.log(response)
      } catch (err) {
        console.log(err)
      }
    }
  }
}
</script>

Теперь проблема, с которой я сталкиваюсь, заключается в том, что когда я нажимаю на кнопку входа в систему, чтобы вызвать, отправить форму и вызвать мою функцию входа в систему, вызов в маршрутизации входа в систему успешен, запрос содержит имя пользователя и пароль из формы, и я получаю ответ обратно. Как показано на рисунках:

Тело запроса и Ответ на запрос

Однако вызов конечной точки пользователя завершается неудачно, поскольку тело запроса пусто, таким образом, сервер не может обработать запрос, как показано на рисунке ниже: Пустое тело запроса при вызове конечной точки пользователя.

Я предполагаю, что мой вопрос заключается в том, была ли у меня какая-то неверная конфигурация, которая вызывает тело запроса к конечной точке пользователя должно быть пустым, что не позволяет долго удерживать моего пользователя и сохраняет this.$auth.loggedIn и this.$auth.user false.

То, что я пытался выполнить до конца:

  • Я попытался переключить запрос в своем API на сообщение, чтобы увидеть, имеет ли это какое-то значение, как вы можете видеть на картинке выше, это не так. И get, и post запрос имеют пустое тело при достижении API.
  • Я попытался установить propertyName на false в точке входа пользователя. Как упомянуто здесь . По-прежнему возникает та же проблема.
  • Я пытался использовать метод this.$auth.fetchUser() из функции входа в систему в компоненте, сразу после let response = await this.$auth.loginWith('local', { data: this.login }). Как рекомендуется в этом ответе r. Тем не менее получить ту же проблему.

Буду признателен за любую рекомендацию или помощь.

Ответы [ 2 ]

0 голосов
/ 12 апреля 2020

В соответствии с конечной точкой входа в систему, auth должен получить 'token' propertyName, но, как показано на скриншоте вашего ответа, вы получили свойство 'auth' в качестве ответа, вы должны изменить свой бэкэнд для прямого возврата свойства токена (не вложенного свойства) или изменить свой логин конечная точка propertyName, вы можете проверить правильность установки токена по телефону

console.log( this.$auth.getToken('local') );
0 голосов
/ 11 апреля 2020

Пожалуйста, установите запрос get nuxt.config, а также конечную точку API. Спасибо

 user: { url: '/users/username/', method: 'get', propertyName: 'User' }'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...