diff --git a/submodules/TelegramCore/Sources/Authorization.swift b/submodules/TelegramCore/Sources/Authorization.swift index 0545b3dc20..4d1594e8ee 100644 --- a/submodules/TelegramCore/Sources/Authorization.swift +++ b/submodules/TelegramCore/Sources/Authorization.swift @@ -103,6 +103,19 @@ public func sendAuthorizationCode(accountManager: AccountManager map { sentCode in return (.sentCode(sentCode), updatedAccount) } + |> `catch` { error -> Signal<(SendCodeResult, UnauthorizedAccount), MTRpcError> in + if error.errorDescription == "SESSION_PASSWORD_NEEDED" { + return account.network.request(Api.functions.account.getPassword(), automaticFloodWait: false) + |> mapToSignal { result -> Signal<(SendCodeResult, UnauthorizedAccount), MTRpcError> in + switch result { + case let .password(_, _, _, _, hint, _, _, _, _, _): + return .single((.password(hint: hint), account)) + } + } + } else { + return .fail(error) + } + } } case _: return .fail(error)