如何申请新的用户凭证 - Ionic&火力地堡

时间:2016-06-11 22:25:41

标签: facebook oauth ionic-framework firebase-authentication facebook-authentication

我目前正在使用AngularFire的$authWithOAuthPopup方法。在注销时,Firebase会话已结束,但OAuth仍然存在(根据预期的功能)。 link Link Explaining oAuth is separate workflow from app logout

但是,如果发生这种情况,$authWithOAuthPopup不允许其他用户在重新登录时输入凭据。

人们是否成功实施了允许其他人登录的解决方案?有人会如何允许新用户输入新的登录凭据而不是自动使用旧信息?

当前行为:将用户退出>点击登录>应用程序使用以前的FB会话信息登录。 通缉行为:登出用户>点击登录>询问用户的FB凭证>登录。

$scope.logout = function () {
  delete $localStorage.storageAuth;
  Auth.$unauth();
  $state.go('user.signin');
};

谢谢:)

2 个答案:

答案 0 :(得分:1)

离子论坛https://forum.ionicframework.com/t/facebook-logout-with-firebase-ionic-clear-oauth-session-so-new-user-can-login/54557/2?u=aaronksaunders

中的原始答案

我们可以看到登录/验证代码......您正在使用$ localStorage.storageAuth做什么,因为它将为您管理用户的登录状态,所以您真的不需要它用于firebase。 ..我相信......

but you can try and clear the cookies/session information

// _blank loads in background, might need clearsessioncache
var ref = window.open(url, '_blank', 'location=no,toolbar=no,clearcache=yes');

// attach a listener to the window which closes it when complete
ref.addEventListener('loadstop', function(event) { 
    ref.close();
});

请参阅文档https://github.com/apache/cordova-plugin-inappbrowser1

答案 1 :(得分:0)

代表Aaron Saunder上面的评论,通过清除应用程序缓存,我们可以提示输入新的用户信息(至少在Android Marshmellow API> 23上)。我还没有在iPhone上确认过。

在网络浏览器上进行开发时,它没有表现出这种行为,所以我想进一步的测试将需要看看何时可以接受。

使用ngCordova $cordovaInAppBrowser

$scope.logout = function () {
    var options = {
      location: 'yes',
      clearcache: 'yes',
      toolbar: 'no',
      hidden: 'yes'
    };

    $rootScope.$on('$cordovaInAppBrowser:loadstop', function(e, event){
      $cordovaInAppBrowser.close();
    });
    $cordovaInAppBrowser.open('http://www.google.com', '_blank', options);

    Auth.$unauth();
    $state.go('user.signin');
};