【问题标题】:Authentication is always active in ionic with Firebase身份验证始终在使用 Firebase 的 ionic 中处于活动状态
【发布时间】:2016-02-11 22:39:55
【问题描述】:

我正在使用 ionic 和 firebase,但我的视图登录出现问题。

登录视图始终显示为已通过身份验证,但在此视图中用户尚未登录

我需要做什么才能显示未经身份验证的视图?因为用户还没有登录

PS:我正在使用 facebook 社交验证。

.controller('BeforeLoginCtrl', function($scope, $state, $rootScope, $firebaseAuth, Auth) {
  /*$scope.login = function() {
    $state.go('login');
  };

  $scope.signUp = function() {
    $state.go('signup');
  };*/

  Auth.$onAuth(function(authData){
    if (authData === null) {
      console.log("No autheticathed");
    } else {
      console.log("Authenticated");
      /*$state.go('tab.dash');*/
    }

    $scope.authData = authData;
  });

  $scope.loginFacebook = function(){
    Auth.$authWithOAuthRedirect("facebook").then(function(authData) {

    }).catch(function(error) {
      if (error.code === 'TRANSPORT_UNAVAILABLE') {
        Auth.$authWithOAuthpopup("facebook").then(function(authData){

        });
      } else {
        console.log(error);
      }
    });
  };
})

.factory('Auth', function($firebaseAuth) {
    var endpoint = "https://<NAME>.firebaseio.com/users";
    var usersRef = new Firebase(endpoint);

    return $firebaseAuth(usersRef);
});

【问题讨论】:

  • 如果Auth.$onAuth(function(authData) 为您提供身份验证数据,您可以非常确定用户实际上已通过身份验证。请记住,Firebase 在页面转换之间“记住”身份验证状态。如果要强制用户注销,请致电$unauth()
  • 感谢您的解释!我打电话给$unauth(),它奏效了。
  • 由于这个原因,我将投票关闭作为一个错字。但是其他人可能有同样的期望,所以我把它变成了一个答案。

标签: javascript angularjs ionic-framework firebase angularfire


【解决方案1】:

如果Auth.$onAuth(function(authData) 为您提供身份验证数据,您可以非常确定用户实际上已通过身份验证。

请注意,Firebase 会在页面转换之间“记住”身份验证状态。这在幕后透明地发生,您无需为此编写任何代码。

如果要强制用户退出,请致电$unauth()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-04
    • 1970-01-01
    • 1970-01-01
    • 2021-08-02
    • 2012-12-12
    相关资源
    最近更新 更多