创建帐户后自动登录用户

我有一个使用Firebase身份验证的应用程序,我想知道是否有以下方法:

1-用户创建帐户后无需登录

2-用户创建帐户后应自动登录

这是为了提供更好的用户体验

这是我正在使用的方法

这是我的代码

  $scope.createUser = function(user) {
    if (user && user.email && user.name ) {
      if (user.password === user.confirm ) {
        auth.$createUser({
          name: user.name,
          email: user.email,
          password: user.password,
          confirmPass: user.confirm
        }).then(function (userData) {
          ref.child("users").child(userData.uid).set({
            name: user.name,
            email: user.email,
            displayName: user.name
          });
        }).catch(function (error) {
            console.log(error);
     });
  };

这里的登录功能

  $scope.signIn = function (user) {
    if (user && user.email && user.pwdForLogin) {
      auth.$authWithPassword({
        email: user.email,
        password: user.pwdForLogin
      }).then(function (authData) {
        ref.child("users").child(authData.uid).once('value', function (snapshot) {
          var val = snapshot.val();
          $scope.$apply(function () {
            $rootScope.name = val;
            $scope.userDisplayInfoName = $rootScope.name.displayName;
            $scope.userDisplayInfoEmail = $rootScope.name.email;
          });
        });
      }).catch(function (error) {
         console.log(error);
      });
    }
  };
粗俗

下面是一个局部UserService,我已经写入,示出了createUser方法,该方法创建新的用户,然后在新用户登录。

用户服务

userModule.service('UserService', function($firebaseAuth, FBREF) {
  var currentUser;
  var _authObj = $firebaseAuth(FBREF); // AngularFire authentication service
  self = {
    init: function() {
      if (_authObj.$getAuth()) {
        // Create User from factory, download user's data from Firebase
        // If this is confusing, I can share the factory implementation as well
        currentUser = User(_authObj.$getAuth());
        // Bind currentUser's data to $rootScope.userData
        currentUser.$bindTo($rootScope, "userData").then(function() {
          console.debug("Bound userData: ", currentUser);
        });
      }
    },
    createUser: function(user, successCb, errorCb){
      // Logout any currentUser before creating new user
      self.logout();
      // First, create a new user
      _authObj.$createUser({
        email: user.email,
        password: user.password
      // Then, authenticate the new user
      }).then(function(userData) {
        // By authenticating with password
        return _authObj.$authWithPassword({
          email: user.email,
          password: user.password
        });
      // Finally, run various initialization steps
      }).then(function(authData) {
        self.init();
        if(successCb) {
          successCb();
        }
      // Catch an error if one is thrown
      }).catch(function(error) {
        console.error("Error: ", error);
        if(errorCb) {
          errorCb(error);
        }
      });
    }
  };
  return self;
});

控制器

控制器的实现如下所示:

userModule.controller('UserCtrl', function($scope, $state, UserService) {

  var someErrorCallback = function() {...}
  var someMissingInputCallback = function() {...}

  $scope.signupWithPassword = function() {
    // rudimentary way to check inputs exist, this should be changed
    if($scope.incomingUser.email && $scope.incomingUser.password) {
      UserService.createUser($scope.incomingUser, function() {
        // successCb
        $state.go('stateToGoToAfterSuccessfulLogin');
      }, function(error){
        // errorCb
        console.error("Signup error:",error);
        someErrorCallback();
      });
    } else {
      someMissingInputCallback();
    }
  };

});

资源


希望能有所帮助。
如果不清楚,我可以进一步解释。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

创建帐户后登录用户

来自分类Dev

创建帐户后登录用户

来自分类Dev

用户创建帐户后如何自动登录?

来自分类Dev

创建帐户后尝试登录用户时,self.auth.get_user_by_password引发InvalidAuthIdError

来自分类Dev

播种用户时如何创建默认的登录用户帐户?

来自分类Dev

创建自定义成员资格后自动登录用户(不使用向导)

来自分类Dev

使用Facebook登录用户创建新帐户的最佳做法

来自分类Dev

使用Facebook登录用户创建新帐户的最佳做法

来自分类Dev

CakePHP 3:如何在注册后自动登录用户

来自分类Dev

管理员登录用户帐户

来自分类Dev

创建用户后如何防止自动登录

来自分类Dev

自动向登录用户发送邮件

来自分类Dev

使用.NET WebBrowser控件,为什么Salesforce.com在会话无效后自动登录用户?

来自分类Dev

自动将登录用户附加到他/她创建的帖子

来自分类Dev

使用厨师创建无登录用户

来自分类Dev

为登录用户创建个人收藏

来自分类Dev

服务器端登录用户帐户

来自分类Dev

MS Graph:如何确定已登录用户的帐户类型?

来自分类Dev

Fedora 21-无法登录用户帐户

来自分类Dev

Rails自动登录用户而无需登录页面

来自分类Dev

是否可以在已登录用户内创建用户

来自分类Dev

登录用户而无需在rspec中创建多个用户

来自分类Dev

删除访客用户帐户后无法登录

来自分类Dev

如果他们是Yii的访客,则自动登录用户

来自分类Dev

自动将邮件发送给登录用户

来自分类Dev

如何停止Windows 10自动在后台登录用户

来自分类Dev

使用KoaJS和PassportJS自动登录用户

来自分类Dev

登录用户会话时如何自动停止Apache

来自分类Dev

自动登录用户但保留密码保护

Related 相关文章

热门标签

归档