Ember Torii facebook身份验证无法获取用户电子邮件

时间:2015-01-13 08:34:31

标签: facebook authentication ember.js ember-simple-auth

我正在使用Ember CLI + ember simple auth torii link

从我的ember应用程序获取facebook的身份验证代码。

这是我的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 app会获得一个令牌。

如何获得用户的电子邮件ID 以及此令牌? 有没有人遇到类似的问题?

1 个答案:

答案 0 :(得分:2)

所以你正在使用oauth2,所以你要获得的只是一个授权令牌。使用此令牌,您可以关闭并请求其他信息。令牌基本上只是为了加快用户对您的应用程序的验证。

如果您想获取用户信息,则需要创建另一种方法(可能在您的服务器端),该方法交换访问令牌的授权码:like so(或者您可以请求访问权限)直接使用令牌,这将消除对服务器端解决方案的需求。

使用访问令牌,您可以请求Facebook用户ID using the debug token endpoint,之后您将可以到达任何端点以获取所需信息。