2017-04-19 92 views
0

我使用Torii和ember-simple-auth来管理我的前端的身份验证,以及我的服务器上的Knock和Omniauth-twitter。我对Facebook没有任何问题,但使用Oauth1.0的Twitter,我有麻烦来弄清楚流量。使用Ember.js和Rails进行Twitter身份验证

这里是我的牌坊配置:

# environment.js 

ENV['torii'] = { 
sessionServiceName: 'sessiontorii', 
providers: { 
    'facebook-oauth2': { 
    apiKey: 'API_KEY', 
    redirectUri: 'http://localhost:4200/' 
    }, 
    'twitter': { 
    requestTokenUri: 'http://127.0.0.1:3000/auth/twitter' 
    } 
} 

我的路线或控制器:

# route.js 

twitterLogin() { 
    var self = this; 
    this.get('sessiontorii').open('twitter').then(function(response) { 
    console.log(response); 

    self.transitionTo('index'); 
    }, function() { 
    console.log('auth failed'); 
    }); 
}, 

一个新窗口被打开,我可以用我的Twitter帐户登录。我的服务器进行身份验证/注册,但我无法弄清楚如何关闭这个新窗口并将令牌发送到我的前台。 我的流程完全错误吗?或者我错过了什么? 我跟着这tutorial,但我不知道它是不是有点过时

+0

您可能有一个起源问题:您的主窗口在localhost:4200上,而twitter上的一个在127.0.0.1:3000上。 –

+0

其实我找到了一些东西,Torii打开一个新窗口,但它没有关闭它,因为它仍在等待数据。 –

回答

0

问题是,我从我的服务器发送错误类型的数据。所以我更新了我的torii提供商和我发送的代码。 Torii完成这项工作,并在获取数据时关闭新窗口。然后,我将数据发送给我的身份验证器,并使用JWT代码确认身份验证。