Вход в Facebook через Torii и Simple-Auth: данные аутентификации не возвращаются

Я попытался настроить вход в Facebook с использованием Torii и Simple-Auth Torii authenticator. Я использую Ember-Cli.

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

// config/environment.js
ENV['torii'] = {
    providers: {
        'facebook-oauth2': {
            apiKey:      'my facebook app id'
        }
    }
}

Вот мой код входа в систему:

// app/controllers/login.js
import Ember from 'ember';
import LoginControllerMixin from 'simple-auth/mixins/login-controller-mixin';

export default Ember.Controller.extend(LoginControllerMixin, {
  actions: {
    authenticateWithTorii: function(){
      this.get('session').authenticate(
        'simple-auth-authenticator:torii',
        'facebook-oauth2'
      ).then(
        function(data) {
          alert('SUCCESS ' + data);
        },
        function(error) {
          alert('There was an error when trying to sign you in: ' + error);
        }
      );
    }
  }
});

Открывается всплывающее окно с запросом авторизации, затем я вижу предупреждение "УСПЕХ НЕ УКАЗАН". Я думал, что получу некоторые данные, которые я мог бы использовать на своем бэкэнде, чтобы определенно аутентифицировать пользователя (токен доступа или фейсбук uid и т. Д.).

Я что-то упустил, чтобы использовать Torii с Simple-Auth?

1 ответ

Решение

Обещание вернулось Session#authenticate не имеет значения, но все, с чем разрешает аутентификатор torii, доступно через сеанс, как только оно аутентифицируется (что в вашем случае разрешено в возвращенном обещании). Вы можете получить доступ, например, token собственность с

var _this = this;
this.get('session').authenticate(
  'simple-auth-authenticator:torii',
  'facebook-oauth2'
).then(function(data) {
  alert('SUCCESS ' + _this.get('session.token'));
})

Вы также можете проверить сеанс content свойство (которое вы не должны использовать иначе, поскольку оно является частным, но для отладки это нормально), чтобы узнать, что доступно:

console.log(this.get('session.content'))
Другие вопросы по тегам