Ошибка социальной аутентификации для Google с Vue.js и django-rest-auth

Я слежу за блогом, который показывает нам, как мы можем использовать vue-authentication с django restframework для социальной аутентификации.

Это блог: https://medium.com/@dobrotek6/drfsamv-django-rest-framework-social-auth-mongo-vuejs-part-1-c5c907dd7b69

Однако в блоге используется некоторая структура social-auth, которую я не использую. Я использую пакет django-rest-auth.

Я попытался настроить его соответствующим образом, но у меня возникли некоторые проблемы.

redirectUri: 'http://localhost:8080/',
url: 'http://localhost:8000/rest-auth/google/',

В приведенном выше коде показаны ссылки, которые я размещаю в настройках поставщика в соответствии с документацией vue-Authenticate.

this.$auth.authenticate('google', {provider: "google- 
oauth2"}).then(function (response)

В приведенном выше коде показан метод аутентификации в соответствии с документацией в vue-authenticate, которую я скопировал из блога. Здесь я получаю сообщение об ошибке аутентификации.

Что именно я делаю не так? Кажется, я не могу определить проблему.


person Hamza    schedule 04.03.2019    source источник


Ответы (1)


Встретившись с той же проблемой, решение довольно простое, но трудно найти.

Вам нужно добавить поле tokenPath в конфигурацию Vue-Authenticate, чтобы позволить vue найти токен в ответе.

В моем случае Django возвращает токен в поле «токен», но в вашем случае он может быть другим.

Пример кода:

Vue.use(VueAuthenticate, {
  baseUrl: 'youApiDomain',
  storageType: 'localStorage',
  tokenPath: 'token',

  providers: {
    google: {
      clientId: 'yourClientId',
      redirectUri: '',
      url: 'authenticationUrl',
    }
  }
});

Решение найдено по адресу: https://github.com/dgrubelic/vue-authenticate/issues/157#issuecomment-487063363

person Andreu Gallofré    schedule 17.12.2019