2015-01-13 3 views
1

Я использую Ember CLI + уголек простой аутентификации тории linkEmber тории аутентификации facebook не в состоянии получить электронную почту пользователя

, чтобы получить код аутентификации от Facebook для моего Ember приложение.

Это мой environment.js файл

ENV['torii'] = { 
    providers: { 
     'facebook-oauth2': { 
     apiKey:  '865549306850377', 
     scope: 'email', 
     //redirectUri: window.document.location.href 
     redirectUri: 'http://localhost:4200/' 
     } 
    } 
    }; 

И мой контроллер Войти выглядит следующим образом -

facebook: function() { 

    var _this = this; 
      this.get('session').authenticate('simple-auth-authenticator:torii', 'facebook-oauth2').then(function(data){ 
       console.log("status - ", _this.get('session')); 
      }); 
     } 

И login.hbs -

<li><button {{action "facebook" "facebook-oauth2"}}>Facebook OAuth2</button></li> 

После того, как пользователь нажимает на ссылку , всплывающее окно facebook открывается, а приложение ember получает токен.

Как получить адрес электронной почты пользователя вместе с этим токеном? Неужели кто-то сталкивался с подобной проблемой?

ответ

2

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

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

Используя токен доступа, вы можете запросить идентификатор пользователя Facebook, using the debug token endpoint, и после этого вы сможете добраться до любой конечной точки, чтобы получить необходимую информацию.