我使用Firebase和Angular和Angular来进行OAuth登录。
当我使用$authWithOAuthPopup
时,一切正常,但这种传输并不总是可用,所以当我不得不回到$authWithOAuthRedirect
时,我无法让它工作。
使用此代码,会发生以下情况:
https://api.twitter.com/oauth/authenticate?oauth_token=<longtoken>
http://localhost:3101/##?&__firebase_request_key=<longrequestkey>
承诺回调:CHECK 2
,CHECK 3
,CHECK 4
永远不会运行,$ onAuth函数(CHECK 5
)永远不会运行。
如果我使用$ authWithOAuthPopup,它会按预期工作(只要支持该传输)。
authObj = $firebaseAuth new Firebase(<firebase root>);
authObj.$onAuth(function(authData){
console.log("CHECK 5");
});
$scope.login = function(provider) {
console.log("CHECK 1");
authObj.$authWithOAuthRedirect(provider).then(function(authData) {
console.log("CHECK 2");
}).then(function() {
console.log("CHECK 3");
}).catch(function(err) {
console.log("CHECK 4");
});
}
我试图用另一个例子重现这个:https://dylan.firebaseapp.com/。在这个重现的例子中一切正常。它在我的应用程序中的其他东西正在引起一些有趣的业务。
库: