Warning
Не тестируйте это на аккаунте, который вам дорог. Вход по логину и паролю бьёт по эндпоинтам аутентификации, которые Discord пристально мониторит на предмет неофициальных клиентов. Любой сторонний клиент и так нарушает условия использования Discord, но именно этот путь заметнее прочих: заведите отдельный аккаунт для проверки.
Автор Unicord WamWooWam заявлял, что отсутствие входа по паролю — сознательное решение, а не недоделка: Discord меняет заголовки и телеметрию, связанные с антиспамом, и на этих изменениях кастомные клиенты и попадаются. Телеметрию из Unicord в своё время убрали ровно по этой причине. Данная сборка идёт против этого решения — учитывайте риск.
Вход в Discord по логину и паролю — раньше Unicord умел только токен.
Реализация портирована из Discord Classic (DCLoginManager, DCTwoFactorViewController).
Что нового
Вход по email или номеру телефона. На странице входа появились поля учётных данных. Под капотом три шага к Discord API: POST /auth/fingerprint за отпечатком, затем POST /auth/login, при необходимости POST /auth/mfa/totp. Отпечаток переиспользуется всеми шагами одной попытки, как того требует Discord.
Двухфакторная аутентификация. Если на аккаунте включён TOTP, открывается диалог ввода шестизначного кода. При неверном коде диалог не закрывается: показывает ошибку и очищает поле.
Капча. Подключена к существующему CaptchaRequestDialog на hCaptcha, до трёх попыток входа подряд. Перед показом проверяется наличие рантайма WebView2 — если его нет (Windows 10 Mobile), вместо падения приложения выводится понятное сообщение с предложением войти по токену.
Внятные ошибки. Из ответа Discord извлекается конкретное сообщение из вложенного errors._errors — там бывает «Password does not match» вместо общего «Invalid Form Body». Если конкретики нет, коды 10004, 20016, 40002 и 50035 разворачиваются в человеческий текст. Отдельно обрабатывается 429 с обратным отсчётом из retry_after.
Локализация. Все строки добавлены в en-US, en-GB, ru-RU, fr и ja-JP. Заодно в en-US восстановлен потерянный LoginWithTokenButton.Content — кнопка входа по токену показывала литерал из XAML вместо ресурса.
Установка
В архиве три сборки — ARM для Windows 10 Mobile, x64 и x86 для десктопных Windows 10/11. Возьмите папку под свою платформу.
Windows 10 Mobile. На телефоне включите режим разработчика и Device Portal (Параметры → Обновление и безопасность → Для разработчиков), откройте с компьютера http://<ip-телефона> → вкладка Apps → Install app. Заполните все три поля: сам .appxbundle, сертификат UnicordDev.cer и все файлы из папки Dependencies. Device Portal — предпочтительный путь именно потому, что ставит сертификат вместе с пакетом; WinAppDeployCmd сертификат не устанавливает, и без доверия к нему установка сорвётся.
Десктоп. Установите UnicordDev.cer в «Доверенные корневые центры сертификации» локального компьютера, затем запустите Add-AppDevPackage.ps1 из папки платформы, либо поставьте зависимости и бандл вручную через Add-AppxPackage.
Что стоит знать
Пакеты подписаны самоподписанным сертификатом CN=0F22111D-EDF0-42F0-B58D-26C4C5C5054B, действующим до 3 августа 2027 года. Без установки UnicordDev.cer система откажется ставить приложение.
Ветка с капчей вживую не проверялась — Discord её ни разу не запросил во время тестирования. Обычный вход по паролю проверен на реальном устройстве.
На Windows 10 Mobile капча принципиально нерабочая: hCaptcha рендерится в WebView2, то есть в Edge на Chromium, которого на мобильной платформе нет. Вход по паролю там сработает только если Discord не потребует капчу; иначе остаётся вход по токену.