加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – 一旦密码重置,Firebase Auth不会更新

发布时间:2020-12-17 18:04:22 所属栏目:安全 来源:网络整理
导读:一旦第一次加载Firebase Auth对象,我似乎无法弄清楚如何重置它. 我在auth.password.isTemporaryPassword中寻找bool true值,强??制用户重置密码.一旦用户执行了此过程并重置,则auth.password.isTemporaryPassword保持为true. 我找到的唯一方法是将用户注销并
一旦第一次加载Firebase Auth对象,我似乎无法弄清楚如何重置它.

我在auth.password.isTemporaryPassword中寻找bool true值,强??制用户重置密码.一旦用户执行了此过程并重置,则auth.password.isTemporaryPassword保持为true.

我找到的唯一方法是将用户注销并再次登录,刷新auth对象.

登录:

var ref = new Firebase(environment);

$firebaseAuth(ref)
.$authWithPassword({
     email: email,password: password
},sessionObj)
.then(function(authData) {
    if (password.isTemporaryPassword === true) {
        $state.go('resetpassword');
    }
})
.catch(function(error) {
    deferred.reject(error);
});

重设密码:

$scope.reset.oldPassword         =  "oldPass";
$scope.reset.newPassword         =  "newPass";
$scope.reset.email              =   "usermail";

ref.changePassword($scope.reset,function(err) {
    if(err) {
         ...
    }
    else {
        $state.go('home')
    }
})

password.isTemporaryPassword保持为真,直到我再次登录用户,这似乎是hacky.

解决方法

您应该能够使用 onAuth函数来侦听身份验证状态的更改:

ref.onAuth(function(authData) {

    //user authenticated & needs to change her password
    if(authData && authData.password.isTemporaryPassword) {
        $state.go('resetpassword');
    }

    //else user is logged in with valid password
    else if(authData) {

    }

    //else user is logged out
    else {

    }
});

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读