Как реализуется проверка на бэк энде PHP авторизации у mini app Telegram?
Собственно сабж. Не совсем понимаю какие переменные в get приходят для формирования подписи и сверки их, в оф доке примеров на php не нашел, чтобы как то понять как реализовать мидлвар для проверки что пользователь зашел именно с телеги.
szQocks, там пример на голанг и ноде, но там используются библиотеки, т.е. берут инитдата и токен и отправляют его в метод валидейт из библиотеки. А чистого примера нет, так бы я конечно перевел бы на пхп этот код.
Дмитрий, спасибо большое! Получается действительно как говорил Ivan Ustûžanin телега открывает приложение вообще без параметров, и уже только доп запросом js на бэк можно проверить данные?! Просто тот же ВК еще при Дурове и до сих пор даёт в первый запрос параметры с данными юзера и подписью, которую бэк сразу же может проверить без лишних запросов, и сформировать токен для дальнейших запросов. Это вроде как экономит время и убирает лишний запрос на бэк.
Получается действительно как говорил Ivan Ustûžanin телега открывает приложение вообще без параметров
да он вроде ничего подобного не говорил
не забудь написать логику обновления страницы веб-апп, когда пользователь находиться в уже открытом веб-апп и решил обновить страницу, тут будет нюанс в том что - параметров тут не будет
szQocks, ну он написал что там такого нет (гет запроса с параметрами про который я говорил в вопросе), а только само приложение запрос может послать и проверить, по сути так и оказалось. Очень странное решение, когда удобнее сразу в стартовый урл добавлять параметры и подпись которую бэк сразу может сверить, особенно учитывая что в ВК такое практикуют с самого зарождения таких аппов. Но что есть, то есть.
Ньюанс какой при обновлении? Что то не совсем понял. Если обновить страницу миниап просто оно загрузится заново как будто его запустили как первый раз, я её обновляю не выходя из аппа. Или о чем речь?
ну он написал что там такого нет (гет запроса с параметрами про который я говорил в вопросе), а только само приложение запрос может послать и проверить, по сути так и оказалось. Очень странное решение, когда удобнее сразу в стартовый урл добавлять параметры и подпись которую бэк сразу может сверить, особенно учитывая что в ВК такое практикуют с самого зарождения таких аппов. Но что есть, то есть.
понял
Ньюанс какой при обновлении? Что то не совсем понял. Если обновить страницу миниап просто оно загрузится заново как будто его запустили как первый раз, я её обновляю не выходя из аппа. Или о чем речь?
когда из тг открываешь мини апп, тг открывает его с параметрами, но если мини апп уже открыт, и обновить страницу тупо, то никаких параметров не будет, будет работать как простое обновление страницы, а не как запуск тг мини апп заного
ты с этим столкнёшься в любом случае, рано или поздно - это вопрос времени, но лучше логику эту обработать вначале чем потом
szQocks, ну я уже сотню раз наверно обновлял через меню браузера пока доработки делал под тг, вроде параметры при обновлении всегда приходят в initData. Единственное когда они не приходят, это если запускать миниап из кейборд кнопки, тоже странное решение, но что есть)
Alex, попробуй с главной страницы куда-нибудь перейти, параметры пропадут и потом их уже не будет, и не будут они приходить, только при запуске, ладно, разберешься
szQocks, речь точно про onepage приложение? может вы имеете ввиду переход по страницам как на обычных сайтах, такое я не тестировал. А если сервис onepage как в том же ВК то тут всегда на одной странице и множественный запрос у window.Telegram.WebApp initData всегда выдаёт строку с данными, пока был случай пустого initData только при запуске из кейборд кнопки. Сейчас выходил заходил обратно в сервис обновлял initData всегда есть. Так что пока не совсем понял вас, где мне искать этот случай :)
szQocks, а ну да я так и обновлял пока подстраивал под тг, и в десктопе и на мобилке. Пока никаких проблем не было initData всегда приходит заполненный. Возможно какие то другие условия нужны чтобы эта проблема воспроизвелась или может её исправили, не могу сказать точно пока просто не встречал эту проблему.
szQocks, ну да на многостраничных может быть такая проблема. Но я думаю сейчас все вебаппы вроде уже одностраничные с подгрузкой, по крайней мере в ВК только так и может работать сервис одной страницей.