【问题标题】:deleting user, problems with reauthenticating firebase删除用户,重新验证 Firebase 的问题
【发布时间】:2020-08-06 19:17:40
【问题描述】:

您好,我正在尝试在用户删除帐户之前对其进行重新身份验证,但我遇到了一个似乎无法解决的问题;如果我没有保存用户密码,我该如何获取它,因为这将是一个隐私问题。我看过其他关于此的帖子,但他们没有提到他们是如何获得密码的。这是我删除帐户的代码:

const onDeleteAccountPress = () => {        
    firebase.database().ref('users/'+userId).remove()
    var userReauth = firebase.auth().currentUser

    const credential = firebase.auth.EmailAuthProvider.credential(userReauth.email,userProvidedPassword)
    userReauth.reauthenticateWithCredential(credential)
    for(let i =0; i < goalCounter; i++){
        firebase.database().ref('goals/'+(courseGoals[i].id)).remove()
    }

    userReauth.delete()
    .then(function(){
        props.navigation.navigate('Login');
        props.navigation.reset({ index: 0, routes: [ { name: 'Login' } ] });
    }).catch(function(error){
        console.log(error)
        console.log('there is something wrong')
    })
    
}

【问题讨论】:

    标签: javascript firebase react-native firebase-authentication


    【解决方案1】:

    当用户登录时,你可以将密码存储在localStorage中,如果用户想删除账户,你可以从存储中获取密码并传递给EmailAuthProvider.credential()方法。

    【讨论】:

    • 如何在 localStorage 中存储密码?
    • 当用户写入密码时,只需将其添加到存储localStorage.setItem('user_pass', 'password');
    • react native 不允许 localStorage,所以我不得不使用异步存储来响应原生
    猜你喜欢
    • 2017-02-24
    • 2019-03-15
    • 1970-01-01
    • 1970-01-01
    • 2021-02-28
    • 1970-01-01
    • 1970-01-01
    • 2019-07-20
    相关资源
    最近更新 更多