ngSatellizer 和 Hapi/Bell 不能一起玩。 Promise 不会解决 Twitter

ngSatellizer and Hapi/Bell not playing well together. Promise will not resolve for Twitter

我一直在到处寻找这个问题的可能解决方案,但似乎无法提出任何特别的建议。从修改我的回调到 Hapi 中的各种其他修补,我无法得到在 Angular 端解决的承诺。奇怪的是,Twitter 弹出窗口 window 不会关闭。如果我手动关闭它,那么承诺就会被拒绝。

所以,我不得不对其进行配置以解决被拒绝的承诺,这真是令人讨厌...

//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');
      });
    }
  }
};

在过去的几天里,我尝试了很多不同的方法来让它正常工作。唉,我在这里。感谢您的帮助!

对于未来的任何人...

我最终使用 window 对象创建了弹出窗口,并长时间轮询会话中的更改以通知 successful/failed 尝试。如果您将 Angular 与 Hapi 一起使用,这是最容易做到的。