user.emailVerified не меняется на true в ответ на ссылку sendEmailVerification (firebase auth) - PullRequest
0 голосов
/ 16 июня 2020

кто-нибудь, пожалуйста, помогите, что мне не хватает? Я успешно отправляю письмо с подтверждением (используя firebase sendEmailVerification), и когда я нажимаю на ссылку в электронном письме, оно не работает, поэтому я копирую ссылку, вставляю в браузер и нажимаю Enter. таким образом я могу вернуться в свое веб-приложение, и URL-адрес продолжения действительно работает. Это просто не меняет user.emaiVerified на true.

const user = firebase.auth().currentUser
if(user) {
    user.sendEmailVerification(actionCodeSettings)
        .then( () => {
            console.log("UnpSignUpForm: Verification email sent SUCCESSFULLY");
        })
        .catch( (error) => {
            console.log('UnpSignUpForm: Verification email sending error: ', error)
        });  
    } else {
        console.log('no user')
}

Я пробовал использовать user.reload () в onAuthStateChanged (см. Ниже), но все еще не могу изменить user.emailVerified на «true».

firebase.auth().onAuthStateChanged( user => {
    // console.log('onAuthStateChanged user', user)

    if (user) {
        console.log('onAuthStateChanged: user is signed IN')
        console.log('onAuthStateChanged user', user)

        user.reload()
        console.log(`user ${user.email} reloaded`)

        // User is signed in.
        if(user.emailVerified) {
            console.log('onAuthStateChanged:email Verified', user.emailVerified)

        } else {
            console.log('onAuthStateChanged:email NOT Verified', user.emailVerified)     
        }

    } else {
        console.log('onAuthStateChanged: onAuthStateChanged: user is signed OUT')
   }
});

1 Ответ

0 голосов
/ 16 июня 2020

После того, как пользователь щелкнет ссылку, emailVerified не обновляется автоматически. Он будет обновлен при перезагрузке пользователя, например. user.reload().

Кроме того, поле email_verified в заявках на токены будет обновлено либо при естественном обновлении токена после истечения срока его действия, либо при принудительном обновлении токена sh после проверки электронной почты пользователя, например. user.getIdToken(true).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...