Вы видимо не совсем правильно поняли концепцию работы мини-апп в Телеграм.
Цепочка выглядит так: вы (клиент с Телеграмом) <=> мини-апп (ваш фронтенд) <=> сервер с логикой (ваш бэкенд).
Каждый раз, когда клиент (вы) открывает мини-апп, Телеграм присылает туда данные TelegramInitData - где содержатся данные юзера, подтверждающий хеш и другие.
Ваш мини-апп должен эти данные принять и всегда держать под рукой. И каждый раз посылать на бэкенд в удобном для вас виде (заголовок, например). А каждый ваш скрипт (куда вы обращаетесь по ajax) должен иметь некий middleware (или пре-хук или listener - как вам удобнее) с обработкой / проверкой этого заголовка (с данными TelegramInitData). И если проверка прошла успешно - то дальнейшие действия выполняются. Если нет - отдается ответ с кодом 401 или 403 - тут как сами решите.
Логика должна быть такой. Ничего сохранять на вашем сервере не надо и ставить дополнительных кук (прости Господи) не надо. У вас по сути stateless backend.