YandexStation icon indicating copy to clipboard operation
YandexStation copied to clipboard

Проблемы с авторизацией

Open x-iLex-x opened this issue 1 year ago • 22 comments

Версия: 3.12.3

Проблема: Не получается пройти авторизацию ни одним из способов - ошибка "Unknown error occurred'. Однако, при повторении определенного алгоритма действий (ниже) примерно 1 раз из 5 даёт авторизоваться, но не может подтянуть колонки из аккаунта.

Предшествующие действия: Появилась необходимость удалить интеграцию и установить заново.

Порядок действий: Удаление записей интеграции (если удалось пройти авторизацию) - Удаление интеграции из HACS - Перезапуск HA - Установка интеграции в HACS - Перезапуск HA - Поиск и настройка интеграции через раздел интеграций - Авторизация в аккаунте

Лог:

Logger: aiohttp.server
Source: custom_components/yandex_station/core/yandex_session.py:140
Integration: Yandex.Station ([documentation](https://github.com/AlexxIT/YandexStation), [issues](https://github.com/AlexxIT/YandexStation/issues))
First occurred: 16:53:15 (4 occurrences)
Last logged: 16:53:19

Error handling request
Traceback (most recent call last):
  File "/usr/local/lib/python3.11/site-packages/aiohttp/web_protocol.py", line 433, in _handle_request
    resp = await request_handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/aiohttp/web_app.py", line 504, in _handle
    resp = await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/aiohttp/web_middlewares.py", line 117, in impl
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/security_filter.py", line 85, in security_filter_middleware
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/forwarded.py", line 100, in forwarded_middleware
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/request_context.py", line 28, in request_context_middleware
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/ban.py", line 80, in ban_middleware
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/auth.py", line 236, in auth_middleware
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/headers.py", line 31, in headers_middleware
    response = await handler(request)
               ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/view.py", line 148, in handle
    result = await handler(request, **request.match_info)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/decorators.py", line 63, in with_admin
    return await func(self, request, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/config/config_entries.py", line 177, in post
    return await super().post(request, flow_id)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/data_validator.py", line 72, in wrapper
    result = await method(view, request, data, *args, **kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/data_entry_flow.py", line 110, in post
    result = await self._flow_mgr.async_configure(flow_id, data)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 298, in async_configure
    result = await self._async_handle_step(
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 394, in _async_handle_step
    result: FlowResult = await getattr(flow, method)(user_input)
                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/yandex_station/config_flow.py", line 112, in async_step_auth
    resp = await self.yandex.login_username(user_input["username"])
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/yandex_station/core/yandex_session.py", line 140, in login_username
    assert m, resp
AssertionError: <!DOCTYPE html>
<html>

<head>
    <title>400</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    

    
<style>
    body {
        font-family: Arial, sans-serif;
        margin: 0;
        padding: 0;
        color: #000;
        background-color: #fff;
    }

    body .content {
        padding: 15px 70px 80px;
        font-size: 15px;
        line-height: 20px;
        margin: 20px 0 30px;
    }

    .header {
        height: 48px;
    }

    .header__logo {
        display: inline-block;
        overflow: hidden;
        min-width: 130px;
        height: 36px;
        white-space: nowrap;
        text-indent: 100%;
        background-repeat: no-repeat;
        background-position: center center;
        background-image: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iODYiIGhlaWdodD0iMzYiIHZpZXdCb3g9IjAgMCAzNzggOTEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgZmlsbD0ibm9uZSI+PHBhdGggZD0iTTI0OS43ODkgODQuODY4OVY3Mi40MTQ2QzI0NSA3NS42MjQ1IDIzNi45NzYgNzguNDQ5MiAyMjkuNDY5IDc4LjQ0OTJDMjE4LjIxIDc4LjQ0OTIgMjEzLjkzOSA3My4xODUgMjEzLjI5MSA2Mi4zOTk4SDI1MC40MzZWNTQuMzEwOUMyNTAuNDM2IDMxLjg0MTcgMjQwLjQ3MSAyMy4zNjc3IDIyNS4wNjkgMjMuMzY3N0MyMDYuMzAzIDIzLjM2NzcgMTk3LjM3MiAzNy42MTk1IDE5Ny4zNzIgNTcuMTM1NkMxOTcuMzcyIDc5LjYwNDcgMjA4LjUwMyA5MC41MTgzIDIyOC4xNzUgOTAuNTE4M0MyMzguMDExIDkwLjUxODMgMjQ1LjI1OSA4Ny45NTA0IDI0OS43ODkgODQuODY4OVpNMzQ2LjA4MSA5MC41MTgzQzM1My4xOTkgOTAuNTE4MyAzNTguMjQ3IDg5LjIzNDMgMzYyIDg2LjUzOFY3NC4wODM3QzM1OC4xMTcgNzYuNzggMzUzLjQ1OCA3OC40NDkyIDM0Ni45ODcgNzguNDQ5MkMzMzUuOTg2IDc4LjQ0OTIgMzMxLjQ1NiA2OS45NzUxIDMzMS40NTYgNTYuNjIyQzMzMS40NTYgNDIuNjI2OSAzMzcuMDIxIDM1LjQzNjggMzQ3LjExNiAzNS40MzY4QzM1My4wNyAzNS40MzY4IDM1OC44OTQgMzcuNDkxMSAzNjIgMzkuNDE3MVYyNi40NDkyQzM1OC43NjQgMjQuNjUxNiAzNTMuMDcgMjMuMzY3NyAzNDUuNDM0IDIzLjM2NzdDMzI1Ljc2MSAyMy4zNjc3IDMxNS41MzcgMzcuMzYyNyAzMTUuNTM3IDU3LjAwNzJDMzE1LjUzNyA3OC41Nzc2IDMyNS41MDIgOTAuNTE4MyAzNDYuMDgxIDkwLjUxODNaTTEwOC43MTcgMjQuNjUxNlY1MC4yMDIySDg4LjEzODJWMjQuNjUxNkg3Mi43MzY3Vjg5LjIzNDNIODguMTM4MlY2Mi4yNzE0SDEwOC43MTdWODkuMjM0M0gxMjQuMTE4VjI0LjY1MTZIMTA4LjcxN1pNMTkzLjYxOSA3Ny4xNjUySDE4Ni43NTlWMjQuNjUxNkgxNDEuODQ5VjMwLjE3MjZDMTQxLjg0OSA0NS45NjUyIDE0MC44MTQgNjYuMzggMTM1LjM3OCA3Ny4xNjUySDEzMC41ODlWMTA0SDE0NC44MjZWODkuMjM0M0gxNzkuMzgyVjEwNEgxOTMuNjE5Vjc3LjE2NTJaTTI5OC45NyA4OS4yMzQzSDMxNi40NDNMMjkxLjcyMyA1NC40MzkzTDMxMy40NjYgMjQuNjUxNkgyOTcuOTM1TDI3Ni4xOTIgNTQuNDM5M1YyNC42NTE2SDI2MC43OVY4OS4yMzQzSDI3Ni4xOTJWNTcuNTIwOEwyOTguOTcgODkuMjM0M1pNMjI0LjgxIDM1LjQzNjhDMjMyLjQ0NiAzNS40MzY4IDIzNC43NzYgNDEuNzI4MiAyMzQuNzc2IDQ5LjgxNzFWNTEuMTAxSDIxMy4yOTFDMjEzLjY4IDQwLjgyOTQgMjE3LjQzMyAzNS40MzY4IDIyNC44MSAzNS40MzY4Wk0xNzEuMzU4IDc3LjE2NTJIMTQ5LjYxNUMxNTMuODg2IDY3LjQwNzIgMTU1LjA1MSA0OS44MTcxIDE1NS4wNTEgMzguNjQ2N1YzNi43MjA4SDE3MS4zNThWNzcuMTY1MloiIGZpbGw9ImJsYWNrIj48L3BhdGg+CiAgICAgICAgPHBhdGggZD0iTTQ0LjEzMzcgODkuMjM0Nkg1OS43OTRWMEgzNy4wMTUzQzE0LjEwNzIgMCAyLjA3MDc5IDExLjY4NCAyLjA3MDc5IDI4Ljg4ODlDMi4wNzA3OSA0Mi42MjcyIDguNjcxNDMgNTAuNzE2IDIwLjQ0OSA1OS4wNjE3TDAgODkuMjM0NkgxNi45NTQ2TDM5LjczMzMgNTUuNDY2N0wzMS44Mzg0IDUwLjIwMjVDMjIuMjYxIDQzLjc4MjcgMTcuNjAxNyAzOC43NzUzIDE3LjYwMTcgMjcuOTkwMUMxNy42MDE3IDE4LjQ4ODkgMjQuMzMxOCAxMi4wNjkxIDM3LjE0NDggMTIuMDY5MUg0NC4xMzM3Vjg5LjIzNDZaIiBmaWxsPSIjRkMzRjFEIj48L3BhdGg+PC9zdmc+');
        background-size: contain;
        margin-left: 5px;
        margin-right: 5px;
    }

    .header__code {
        font-size: 32px;
        display: inline-block;
        overflow: hidden;
        width: 76px;
        text-align: center;
        color: #fff;
        background-color: #999;
    }

    .content__h1 {
        font-size: 21px;
        font-weight: 400;
    }

    .content__h2 {
        font-size: 15px;
        font-weight: 800;
    }

    .footer {
        line-height: 30px;
        height: 30px;
        padding: 0 25px;
        border-top: 1px solid #eee;
    }

    .footer__copyright {
        font-size: 13px;
    }

    .link {
        color: #44b;
    }

    .link:hover {
        color: #e00;
    }
</style>

</head>

<body>
    
    <div class='header'>
        <a target="_blank" class="header__logo" href="https://www.ya.ru">Yandex</a>
        <div class='header__code'>400</div>
    </div>
    <div class='content'>
        <pre></pre>
        
            
	<h1 class="content__h1">Bad Request</h1>
	<p>Если у вас возникли проблемы, пожалуйста, воспользуйтесь <a target="_blank" class="link" href="https://yandex.ru/support/smart-captcha/?unique_key=/#help" onclick="ym(72876589, 'reachGoal', 'support_complain', { 'req_id': '' }); return true;">формой обратной связи.</a></p>
    <p></p>

        
    </div>
    <div class='footer'><span class='footer__copyright'>©&nbsp;Yandex</span></div>
    <!-- Yandex.Metrika counter -->
    <script
        type="text/javascript">(function (m, e, t, r, i, k, a) { m[i] = m[i] || function () { (m[i].a = m[i].a || []).push(arguments) }; m[i].l = 1 * new Date(); k = e.createElement(t), a = e.getElementsByTagName(t)[0], k.async = 1, k.src = r, a.parentNode.insertBefore(k, a) })(window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym"); ym(15897442, "init", { clickmap: true, trackLinks: true, accurateTrackBounce: true, webvisor: true, ut: "noindex", params: { "req_id": "", "unique_key": "", "http_code": "400" } });</script>
    <noscript>
        <div><img src="https://mc.yandex.ru/watch/15897442?ut=noindex" style="position:absolute; left:-9999px;" alt="" /></div>
    </noscript><!-- /Yandex.Metrika counter -->
</body>

</html>

x-iLex-x avatar Sep 19 '23 14:09 x-iLex-x

У меня такая же ошибка. Нашли решение?

nakata5321 avatar Sep 25 '23 16:09 nakata5321

У меня такая же ошибка. Нашли решение?

К сожалению, для меня единственным решением остался описанный мной алгоритм действий. Просто постоянные попытки, на одной из них пропускает в аккаунт.

На прошлой неделе вышло обновление интеграции, говорят пофиксили момент с авторизацией.

x-iLex-x avatar Sep 25 '23 18:09 x-iLex-x

У меня такая же ошибка. Нашли решение?

К сожалению, для меня единственным решением остался описанный мной алгоритм действий. Просто постоянные попытки, на одной из них пропускает в аккаунт.

На прошлой неделе вышло обновление интеграции, говорят пофиксили момент с авторизацией.

И после этого у вас появилась колонка? Просто попасть в аккаунт у меня тоже получилось после n попыток, но колонки так и нет там.

При этом я уже пробовал на последней версии интеграции.

nakata5321 avatar Sep 26 '23 06:09 nakata5321

У меня такая же ошибка. Нашли решение?

К сожалению, для меня единственным решением остался описанный мной алгоритм действий. Просто постоянные попытки, на одной из них пропускает в аккаунт. На прошлой неделе вышло обновление интеграции, говорят пофиксили момент с авторизацией.

И после этого у вас появилась колонка? Просто попасть в аккаунт у меня тоже получилось после n попыток, но колонки так и нет там.

При этом я уже пробовал на последней версии интеграции.

А, по этому поводу я открыл отдельный issue. В том случае мне помогло переименовать запись интеграции. Просто переименовать и колонки появились мгновенно.

x-iLex-x avatar Sep 26 '23 06:09 x-iLex-x

Та же проблема.

iKepus avatar Sep 26 '23 17:09 iKepus

Так же не работает ни один метод авторизации.

fckngnthng avatar Oct 05 '23 10:10 fckngnthng

Про авторизацию не подтверждаю. На последней версии интеграции успешно работали QR и Cookies совсем недавно

AlexxIT avatar Oct 05 '23 10:10 AlexxIT

У меня такая же ошибка. Нашли решение?

К сожалению, для меня единственным решением остался описанный мной алгоритм действий. Просто постоянные попытки, на одной из них пропускает в аккаунт. На прошлой неделе вышло обновление интеграции, говорят пофиксили момент с авторизацией.

И после этого у вас появилась колонка? Просто попасть в аккаунт у меня тоже получилось после n попыток, но колонки так и нет там.

При этом я уже пробовал на последней версии интеграции.

Могу сказать, что попробовал через пару дней и смог зайти через почту. И даже сразу отобразила мою колонку

nakata5321 avatar Oct 05 '23 13:10 nakata5321

Проблема стабильно воспроизводится при попытке добавить несколько аккаунтов один за другим. Срабатывает только первый запрос, далее, видимо, на стороне Яндекса стоит определённый таймаут (примерно около 1 часа или чуть меньше), в течение которого все последующие запросы логина, вне зависимости от способа, возвращают ошибку 400.

То же самое, если после первого показа QR-кода закрыть форму и попробовать начать процесс привязки интеграции заново.

Wain-PC avatar Oct 12 '23 16:10 Wain-PC

Возможно компонент не рассчитан на добавление нескольких аккаунтов подряд. Попробуйте перезагружать ХА после каждого добавления.

AlexxIT avatar Oct 12 '23 16:10 AlexxIT

Возможно компонент не рассчитан на добавление нескольких аккаунтов подряд. Попробуйте перезагружать ХА после каждого добавления.

Дело не в нескольких. Я добавлял один аккаунт. Первый раз выбрал QR-код, потом решил, что лучше по логину-паролю войду, отменил, и всё, в течение часа Unknown error при выборе теперь уже любого способа авторизации. Перезагрузка HA не помогала. Спустя час попробовал сразу через логин-пароль, получил ошибку "Невозможно авторизоваться по логину-паролю" (хотя данные стопроцентно были верными). Отменил, решил попробовать что-то другое – и снова Unknown error на всех способах. Спустя ещё час снова попробовал логин-пароль, проверил кажждый символ по два раза – снова отлуп. Отменил, попробовал QR-код, и наконец сработало.

Knellius avatar Oct 12 '23 20:10 Knellius

Судя по тому, что в ответе присутствует ссылка на помощь по капче, яндекс подсовывает её самую. Опять же в пользу этого факта говорит, что через раз всё-таки получает достучаться. Я бы смотрел в эту сторону. Сейчас я наблюдаю следующее: не работает ни один из способов, кроме как через куки. Но при этом через куки только добавляется интеграция. Девайсов не находит, потому что Exception: https://iot.quasar.yandex.ru/m/v3/user/devices return 401 status

UPD: немного посмотрел исходники, судя по ним в случае капчи она должна быть предложена юзеру. Но проблема в том, что яндекс относительно недавно обновил свою капчу - там теперь вместо текста нужно последовательно нажать несколько элементов на картинке. Осмелюсь предположить, что проблема именно в этом.

UPD2: в общем, спустя некоторое время, получилось авторизоваться через куки и успешно увидеть девайс. Не знаю, насколько это помогло, но я в режиме инкогнито авторизовывался вот здесь (взял из исходников) https://passport.yandex.ru/am?app_platform=android

fedderrico avatar Oct 24 '23 08:10 fedderrico

По итогу получилось авторизоваться через стандартную инструкцию с Токеном (без инкогнито и других ссылок), он ТОЛЬКО после того как зашел в приложение Яндекс и внезапно выскочило окно с подтверждением "Это был я".

daniilantonenko avatar Oct 28 '23 08:10 daniilantonenko

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

aleksei-oecd avatar Nov 28 '23 07:11 aleksei-oecd

Такая же проблема, ни один из способов авторизации не смог пройти. Сейчас стабильно на любую попытку пишет: Unknown error occurred

PS: И всё-таки удалось пробиться через авторизацию через QR код. Перевел свой аккаунт на вход по ключу. Поставил приложение в телефон, зарегистрировал свой аккаунт в нем. Потом через приложение зашел по QR коду. Всё остальные варианты не работают. При получении ошибки "Unknown error occurred" нужно ждать какое-то время, пока Яндекс видимо отмокнет.

johndark avatar Nov 28 '23 12:11 johndark

Давно пользуюсь вашей интеграцией. Но вот сегодня поменял пароль в Яндексе и столкнулся с этой же проблемой. Не могу войти и все, в логах видно что капчу подсовывает. Через куки на прокатывает, выдает Exception: https://iot.quasar.yandex.ru/m/v3/user/devices return 401 status

Пока не вижу других вариантов, только ждать пока отпустит.

Из-за чего потребовало капчу, вангую что из-за того, что у меня HA в темной теме, и у меня просто не сканировался QR код. Я вышел с авторизации, переключил на светлую тему, давай еще раз пытатся. Но нет, дальше ошибка и никак не пускает. Очевидно, что проблема именно на стороне Яндекса.

darkfessing avatar Nov 30 '23 01:11 darkfessing

Что делать то в итоге? ))) У меня периодически принимает логин и пароль и пишет перезагрузите ХА, но колонок новых после перезагрузки нет и те что есть в unavailable...

RestOp avatar Dec 12 '23 13:12 RestOp

Перезагрузка ХА не помогала, а вот ребут виртуалки сразу помог, авторизация через куки

Turist46 avatar Dec 18 '23 19:12 Turist46

Такая же проблема. QR код считал, Яндекс.Ключ отработал успешно. Но интеграция выдала ошибку. Другие способы входа писали ошибку. Сработал только вход по Cookie. Но интеграция не видит станции. Пробовал перезагружать хомас. Не помогло. Перезагрузка всей машины тоже не помогла

Bagunda avatar Dec 19 '23 06:12 Bagunda

https://github.com/AlexxIT/YandexStation/issues/452#issuecomment-1916118191

так получилось. колонки появились.

shammysha avatar Jan 30 '24 05:01 shammysha

Доброго дня. из всех возможных способов авторизации в такой последовательности QR-код и потом все остальные сверху вниз получился только через Cookies. При этом колонка не добавлялась и скорее всего это из-за описанной выше проблеммы с капчей.

По факту взяв паузу на то что бы почитать все ишью, нашел https://github.com/AlexxIT/YandexStation/issues/452#issuecomment-1916118191

подождал еще пол часа и авторизовался используя куки https://yandex.com/quasar, специально изменив на com

Возможно кому-то это будет полезно

koftikes avatar Mar 06 '24 10:03 koftikes

Говорят вот тут рабочий способ в случае проблем https://github.com/AlexxIT/YandexStation/issues/452#issuecomment-1916118191

AlexxIT avatar Apr 08 '24 10:04 AlexxIT