Загрузка...

Help with initData binding backend to front

Thread in Python created by J_Belfort69 Feb 4, 2026. 195 views

  1. J_Belfort69
    J_Belfort69 Topic starter Feb 4, 2026 ЛК Аргентины: https://zelenka.guru/threads/5235225 218 Feb 28, 2021
    Приветствую форумчане, столкнулся с такой проблемой, которую не в силах пока решить даже с ИИ.
    Вообщем сделал фронт, затем бэкенд и начал связывать, перед тем как связывать проверил запросы на локалке (всегда ответ 200 - положительный). Тут начал пробовать связать уже с фронтом, поставил бэкенд на Railway (не реклама), фронт на гит залил.

    Проблема в следующем, что не могу никак подвязать бэкенд к фронту из-за ошибки загрузки, постоянно лезет одна и та же ошибка в консоль, уже все что можно перепроверил, бесполезно.

    Ошибка вот такого характера:


    [IMG]

    В консоле вот такое пишет:

    [IMG]

    В логах бэкенда вот так:


    Python
    INFO:     100.64.0.3:10404 - "OPTIONS /api/me?initData=query_id(***тут initData***)
    Получен initData (первые 50 символов): query_id=AAF5yAk-AAAAAHnICT7YMRfV&user=%7B%22id%22...
    Hash mismatch!
    Computed: bd58f5f15de59ffb98eda96893973e97b1b07797e4994fc937b2e5bca5aee1a5
    Expected: f213e6d89a2b3318104230137f4a235ac046666692fb79727489e411466e7265
    Data: auth_date=1770187289
    query_id=AAF5yAk-AAAAAHnICT7YMRfV
    signature=h8JdNX2zX0_wIUkNvRBYwnzvOUEIjO1_iU6...
    INFO: 100.64.0.3:10404 - "GET /api/me?initData=query_id(***тут initData***) HTTP/1.1" 500 Internal Server Error
    ERROR: Exception in ASGI application
    Traceback (most recent call last):
    File "/usr/local/lib/python3.11/site-packages/uvicorn/protocols/http/h11_impl.py", line 408, in run_asgi
    result = await app( # type: ignore[func-returns-value]
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/usr/local/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 84, in __call__
    return await self.app(scope, receive, send)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/usr/local/lib/python3.11/site-packages/fastapi/applications.py", line 1106, in __call__
    await super().__call__(scope, receive, send)
    File "/usr/local/lib/python3.11/site-packages/starlette/applications.py", line 122, in __call__
    await self.middleware_stack(scope, receive, send)
    File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 184, in __call__
    raise exc
    File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 162, in __call__
    await self.app(scope, receive, _send)
    File "/usr/local/lib/python3.11/site-packages/starlette/middleware/cors.py", line 91, in __call__
    await self.simple_response(scope, receive, send, request_headers=headers)
    File "/usr/local/lib/python3.11/site-packages/starlette/middleware/cors.py", line 146, in simple_response
    await self.app(scope, receive, send)
    File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 79, in __call__
    raise exc
    File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 68, in __call__
    await self.app(scope, receive, sender)
    File "/usr/local/lib/python3.11/site-packages/fastapi/middleware/asyncexitstack.py", line 20, in __call__
    raise e
    File "/usr/local/lib/python3.11/site-packages/fastapi/middleware/asyncexitstack.py", line 17, in __call__
    await self.app(scope, receive, send)
    File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 718, in __call__
    await route.handle(scope, receive, send)
    File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 276, in handle
    await self.app(scope, receive, send)
    File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 66, in app
    response = await func(request)
    ^^^^^^^^^^^^^^^^^^^
    File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 264, in app
    solved_result = await solve_dependencies(
    ^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/usr/local/lib/python3.11/site-packages/fastapi/dependencies/utils.py", line 592, in solve_dependencies
    solved = await call(**sub_values)
    ^^^^^^^^^^^^^^^^^^^^^^^^
    File "/app/app/deps/current_user.py", line 18, in CurrentUser
    telegram_user = validate_init_data(initData)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/app/app/services/auth_service.py", line 59, in validate_init_data
    raise ValueError("Invalid signature")
    ValueError: Invalid signature
    Кто шарит, подскажите куда смотреть, не могу никак разобраться с данной ошибкой, ИИ выдает постоянно типо проблема в файлах (пробелы) - 100 раз уже поменял файлы, нет пробелов. Также говорит проверить TOKEN_BOT на хосте где бэкенд и в config.py - также сотню раз уже перепроверил.

    Кто поможет, с меня небольшой бонус)
     
    1. Лисичка
      avatarJ_Belfort69, если ты не смог реализовать это вайбкодом, значит ты плохой вайбкодер
  2. n1s_01
    ну возможные причины
    1. ты модифицируешь hash на фронте на самом может повторно кодируешь или пытаешься декодировать что нельзя делать поэтому у тебя мисматч хеша
    2. ты открываешь свйо сайт не через телеграм миниапп, тебе нужно открывать обязательно в том же боте токен от которого у тебя записан
    3. хз возможно у тебя идет проверка сигнатуры а не хеша, если ты использовал иишку то рассказывали что она часто путает сигнатуру и хеш потоу что сигна используется в логин виджете а инит дата чуть иначе
     
    1. J_Belfort69 Topic starter
      avatarn1s_01, Спасибо, сейчас гляну. По токену вроде все верно, если он конечно еще где задействуется кроме как в config.py .
    2. n1s_01
      avatarJ_Belfort69, попробуй банально сделать вывод с ФРОНТА какой хеш получает фронт, потом вывод хеша который дошел до бека а потом вывод хеша который должен быть так скажем, вот так вот и проверь
    3. J_Belfort69 Topic starter
      avatarn1s_01, Спасибо, сейчас буду тестить
  3. АвтоВАЗ
    Настрой cors политику у своего api, который ты на railway загрузил.
    [IMG]
     
    1. J_Belfort69 Topic starter
    2. АвтоВАЗ
      avatarJ_Belfort69, точно не скажу, railway не пользовался. Лучше погугли, там заголовки для cors политики нужно отдавать.
Loading...