我正在使用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 以及此令牌? 有没有人遇到类似的问题?
答案 0 :(得分:2)
所以你正在使用oauth2,所以你要获得的只是一个授权令牌。使用此令牌,您可以关闭并请求其他信息。令牌基本上只是为了加快用户对您的应用程序的验证。
如果您想获取用户信息,则需要创建另一种方法(可能在您的服务器端),该方法交换访问令牌的授权码:like so(或者您可以请求访问权限)直接使用令牌,这将消除对服务器端解决方案的需求。
使用访问令牌,您可以请求Facebook用户ID using the debug token endpoint,之后您将可以到达任何端点以获取所需信息。