Аутентификация Firebase Swiftui: Статус проверки электронной почты становится правдой после изменения пароляIOS

Программируем под IOS
Ответить
Anonymous
 Аутентификация Firebase Swiftui: Статус проверки электронной почты становится правдой после изменения пароля

Сообщение Anonymous »

Я использую аутентификацию Firebase в моем приложении для iOS и реализовал проверку электронной почты во время регистрации пользователей. Я также проверяю неверные электронные письма при входе и требую, чтобы пользователи проверяли свою электронную почту перед получением доступа к приложению, которое работает так, как и ожидалось. Тем не менее, я заметил неожиданное поведение: < /p>
  • Пользовательские подписываются с электронной почтой и паролем, но не проверяют их электронную почту. < /Li>
    Пользователю не разрешается вводить приложение из -за проверки проверки электронной почты. < /li>
    Пользователь сбрасывает пароль без проверки электронной почты. Пароль, пользователь может получить доступ к приложению, потому что IseMailVerifified становится True.
Я ожидал и изменение пароля - это отдельные процессы. Пользователь по -прежнему должен быть обязан проверить свою электронную почту перед получением доступа к приложению.
Это поведение ожидается в аутентификации Firebase?@MainActor
func signInWithEmail() async {
isLoading = true

validateEmail()
validatePassword()

if emailCredentials.email.isEmpty {
emailValidationState.email = .invalid("Email is required")
isLoading = false
return
}
if emailCredentials.password.isEmpty {
emailValidationState.password = .invalid("Password is required")
isLoading = false
return
}

guard case .valid = emailValidationState.email,
case .valid = emailValidationState.password else {
isLoading = false
return
}

do {
let result = try await authService.signInWithEmail(
email: emailCredentials.email,
password: emailCredentials.password
)
print("BBBB \(result.user.isEmailVerified)")
if !result.user.isEmailVerified {
emailVerificationState.credentials = AuthenticationModel.CreateAccountCredentials(
email: emailCredentials.email,
password: emailCredentials.password
)
emailVerificationState.email = emailCredentials.email
try await result.user.sendEmailVerification()
emailAuthAlert.message = AppConstants.Alert.Message.format(
AppConstants.Alert.Message.emailVerificationSent,
with: emailCredentials.email
)
emailAuthAlert.showAlert = true

} else {
handleSuccessfulAuthentication(for: .email)
}

} catch {
handleAuthError(error, for: .emailAuth)
}

isLoading = false
}

@MainActor
func resetPassword() async {
isLoading = true

validateResetPasswordEmail()

if resetPasswordCredentials.email.isEmpty {
resetPasswordValidationState.email = .invalid("Email is required")
isLoading = false
return
}

guard case .valid = resetPasswordValidationState.email else {
isLoading = false
return
}

do {
try await authService.resetPassword(email: resetPasswordCredentials.email)
forgotPasswordAlert.message = AppConstants.Alert.Message.format(
AppConstants.Alert.Message.passwordResetSent,
with: resetPasswordCredentials.email
)

forgotPasswordAlert.showAlert = true
} catch {
handleAuthError(error, for: .forgotPassword)
}

isLoading = false
}


Подробнее здесь: https://stackoverflow.com/questions/794 ... e-after-pa
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»