Задать вопрос
@Laiser74

Почему при QR-логине в Telethon logout закрывает обе сессии?

При реализации миграции между сессиями через QR-код в Telethon столкнулся с проблемой:
Создаю новую сессию через ExportLoginToken → AcceptLoginToken → ImportLoginToken
Новая сессия успешно авторизуется
При попытке закрыть старую сессию (любым способом: ResetAuthorizationRequest, LogOut, или ResetAuthorizations) новая сессия тоже становится невалидной

async def main():
    # Авторизованный клиент (старая сессия)
    await old_client.start()  
    # Новый клиент
    await new_client.connect()
    
    # 1. Экспорт токена
    export = await new_client(functions.auth.ExportLoginTokenRequest(
        api_id=api_id, 
        api_hash=api_hash
    ))
    
    # 2. Подтверждение на старом клиенте
    await old_client(functions.auth.AcceptLoginTokenRequest(export.token))
    
    # 3. Импорт токена
    await new_client(functions.auth.ImportLoginTokenRequest(export.token))
    
    # 4. Проверка новой сессии (успешно)
    me = await new_client.get_me()
    print(f"Новая сессия: {me.phone}")
    
    # 5. Проблема: закрытие старой сессии убивает новую
    await old_client(functions.auth.ResetAuthorizationsRequest())
    # Теперь new_client тоже не авторизован


Как правильно закрыть только старую сессию после миграции через QR-код, чтобы новая осталась активной?
Есть ли рабочие примеры реализации такого сценария?
  • Вопрос задан
  • 27 просмотров
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы