我一直在寻找解决这个问题的可能解决方案,似乎没有特别提出任何问题。从修改我的回调到Hapi的各种其他修补,我无法在Angular方面得到解决的承诺。奇怪的是,Twitter弹出窗口不会关闭。如果我手动关闭它,那么承诺将被拒绝。
所以,我必须配置这个以解决被拒绝的承诺,这只是讨厌...
//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');
});
}
}
};
在过去的几天里,我尝试了许多不同的东西,以使其正常工作。唉,我在这里。任何帮助表示赞赏!
答案 0 :(得分:1)
对于未来的任何人......
我最终使用窗口对象创建弹出窗口并长时间轮询会话中的更改以通知尝试成功/失败。如果你使用Angular和Hapi,这是最容易做到的。