ngSatellizer和Hapi / Bell不能很好的一起玩。 Promise无法解决的Twitter

我一直在寻找可能的解决scheme,到处都是这个问题,似乎无法拿出任何特别的东西。 从修改我的callback到Hapi的其他各种修补,我无法得到在Angular方面解决的承诺。 奇怪的是,Twitter的popup窗口将不会closures。 如果我手动closures它,那么承诺就会被拒绝。

所以,我必须configuration这个来解决被拒绝的承诺,这只是讨厌的…

//Angular Method $scope.addTwitter = function(){ $auth.authenticate('twitter').then(function(res){ // success }, function(res){ // failure }); }; //Hapi Route //Handles both POST and GET and will successfully authenticate for Twitter on /auth/twitter var User = require('../../models/user'); module.exports = { description: 'Twitter oAuth for the front-end.', tags:['twitter'], auth: { strategies: ['twitter'], mode: 'try' }, handler: function(request, reply){ if (!request.auth.isAuthenticated){ return reply('Authentication failed due to: ' + request.auth.error.message).code(400); } if(request.auth.isAuthenticated){ User.addTwitter(request.state['hapi-cookie'].id, request.auth.credentials, function(err, results){ //Twitter Object //console.log(request.auth.credentials) reply().code(200); //return reply.redirect('/#/thanks'); }); } } }; 

过去几天我尝试了许多不同的事情来正确地工作。 唉,我在这里。 任何帮助表示赞赏!

对于将来的任何人…

我最终创build了窗口对象的popup窗口和长时间轮询会话中的更改以通知成功/失败的尝试。 如果你使用Angular和Hapi,这是最简单的方法。