Auth token expired Telegram что делать

Я столкнулся с проблемой с Android Firebase Auth, используя com.google.gms:google-services:3.0.0 и com.google.firebase:firebase-auth:9.0.1 .

Через 1 час после аутентификации с Firebase (Google или Facebook) я получаю следующую ошибку:

W/PersistentConnection: pc_0 — Authentication failed: expired_token (Auth token is expired)

Почему токен Firebase истекает через 1 час и как продлить этот срок действия?

UPDATE

Я все еще сталкиваюсь с этой проблемой, токен Firebase истекает через 1 час. Теперь я получаю следующее сообщение: W/PersistentConnection: pc_0 — Authentication failed: invalid_token (Invalid claim ‘kid’ in auth header.)

Я ценю любую помощь.

ОТВЕТЫ

Ответ 1

Если мы используем поставщики Auth по умолчанию, такие как (Google, Facebook, электронная почта..), обновление «SHA-1 key» вашего приложения в консоли firebase устранит проблему истечения срока действия токена.

В этом обсуждении разработчик Google поделился руководством для решения этой проблемы.

Telegram Fix Scan QR Code An error occurred. AUTH TOKEN EXPIRED problem Solve

Ответ 2

Попробуйте реализовать FirebaseInstanceIdService , чтобы получить токен обновления.

Доступ к токену регистрации:

Вы можете получить доступ к значению маркера, расширив FirebaseInstanceIdService. Убедитесь, что вы добавили услугу в manifest, затем вызовите getToken в контексте onTokenRefresh и запишите значение как показано:

onTokenRefreshcallback срабатывает всякий раз, когда генерируется новый токен, поэтому вызов getToken в его контексте гарантирует, что вы получаете доступ к текущий, доступный токен регистрации. FirebaseInstanceID.getToken() возвращает null, если токен еще не создан.

Код:

Я надеюсь, что это поможет вам.

Ответ 3

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

Что касается неверного утверждения ‘kid’ в заголовке auth, я получаю ровно 2 результата поиска в Google для этого (: Нет документации, связанной с малышами в документах Firebase. Думаю, нам придется ждать ответов от Google (или переключиться вернитесь к старой версии Firebase, если это возможно).

Еще по теме:  Звук звонка Телеграмм не выводится в наушники

Источник: ask-dev.ru

Протухает авторизация телеграм

Попробовал отправлять сообщения в телеграм при помощи TLSharp (хабр, гитхаб).

Ну, вариант рабочий. Однако есть следующая проблема: после коннекта к серверу нужно пройти аутентификацию, используя hash и code — и этот code приходит на телефон.

Этот code достаточно быстро протухает (в api точно не указано (раз, два), но где-то меньше часа кажется прошло) и если я даже сохраню этот код, то со временем всё равно получу исключение:

А это значит, нужно снова лезть (руками!) в телефон и в отладчике менять на лету значение переменной. Да-да, автор так и советует:

Fix telegram too many attempts please try again later


var hash = await client.SendCodeRequestAsync(«»); var code = «»; // you can change code in debugger var user = await client.MakeAuthAsync(«», hash, code);

Только вот это совсем не production ready. 🙁

Кто может порекомендовать хороший способ автоматизировать этот процесс?

На ум приходит только вариант получения какого-то долгоиграющего (судя по api самого телеграмма — этот code можно получить либо в СМС на телефон, либо в приложение телеграмма) кода (на месяц хотя бы), но я не нашёл в api варианта получить такой токен (да и сомневаюсь, что по соображениям безопасности они будут выдаваться).

Ответы (1 шт):

Моё предположение в комментариях оказалось верным. Проходить авторизацию нужно только при первом подключении. В дальнейшем TLSharp сохраняет все нужные данные в файл session.dat и использует его при последующих подключениях. Повторная авторизация может потребоваться в двух случаях:

  • Файл session.dat был удалён/повреждён
  • Пользователь закрыл сессию (причем, мог сделать это воспользовавшись другим клиентом)

Ниже приведу работающий пример кода:

using System; using System.Threading.Tasks; using TeleSharp.TL; using TLSharp.Core; namespace ConsoleApp1 < internal static class Program < private static async Task Main() < // Следующие два значения нужно получить на https://my.telegram.org/apps var apiId = 123456; var apiHash = «foo»; // Номер телефона пользователя var phoneNum = «+75551234567»; var client = new TelegramClient(apiId, apiHash); await client.ConnectAsync(); var isAuth = client.IsUserAuthorized(); Console.WriteLine($»Файл авторизации существует: «); if (!isAuth) // Если не найден файл session.dat, то пытаемся авторизоваться < TLUser user; try < var hash = await client.SendCodeRequestAsync(phoneNum); Console.WriteLine(«Введите код из SMS:»); var code = Console.ReadLine(); try < user = await client.MakeAuthAsync(phoneNum, hash, code); >catch (CloudPasswordNeededException) < // На данном аккаунте включена двухфакторная авторизация var passwordSettings = await client.GetPasswordSetting(); Console.WriteLine(«Введите пароль:»); var passwordStr = Console.ReadLine(); user = await client.MakeAuthWithPasswordAsync(passwordSettings, passwordStr); >> catch (Exception ex) < Console.WriteLine(ex); return; >Console.WriteLine($»Пользователь » авторизован»); isAuth = client.IsUserAuthorized(); Console.WriteLine($»Файл авторизации существует: «); > try < // В качестве демонстрации работы узнаем количество контактов у пользователя var contacts = await client.GetContactsAsync(); Console.WriteLine($»У вас контактов»); > catch (InvalidOperationException ex) when (ex.Message == «AUTH_KEY_UNREGISTERED») < // Файл session.dat существует, но для сервера эта сессия уже мертва Console.WriteLine(«Пользователь воспользовался другим устройством чтобы закрыть текущую сессию.»); Console.WriteLine(«Удалите файл session.dat и повторите попытку.»); >> > >

Еще по теме:  Как в Телеграмм премиум сделать буквы

Источник: husl.ru

Auth token expired telegram что делать

First of all, auth.exportLoginToken must be called by the app that wants to log in to an existing Telegram account.
The method will return an auth.loginToken constructor, containing a binary login token and an expiry date (usually 30 seconds).

The login token must be encoded using base64url, embedded in a tg://login?token=base64encodedtoken URL and shown in the form of a QR code to the user.
After the expiration of the current QR code, the auth.exportLoginToken method must be recalled and a new QR code must be generated automatically.

Accepting a login token

In order to log in, the QR code must be scanned and accepted by an already logged-in Telegram app using auth.acceptLoginToken.
The token must be extracted from the tg://login URI and base64url-decoded before using it in the method.

Possible errors returned by the method are:

  • 400 — AUTH_TOKEN_INVALID , an invalid authorization token was provided
  • 400 — AUTH_TOKEN_EXPIRED , the provided authorization token has expired and the updated QR-code must be re-scanned
  • 400 — AUTH_TOKEN_ALREADY_ACCEPTED , the authorization token was already used

The method will return an authorization object, containing info about the app and session that we just authorized.

Ошибки Телеграмм: параметры, основные категории, примеры

При работе с мессенджером пользователи иногда получают уведомления, свидетельствующие о возникновении определенной проблемы. Ошибки Телеграмм могут иметь разную природу и структуру, понимание которых, как правило, позволяет оперативно найти выход из сложившейся ситуации и продолжить работу с приложением.

Протухает авторизация телеграм

Попробовал отправлять сообщения в телеграм при помощи TLSharp (хабр, гитхаб).

Ну, вариант рабочий. Однако есть следующая проблема: после коннекта к серверу нужно пройти аутентификацию, используя hash и code — и этот code приходит на телефон.

Еще по теме:  Зачем в тиндер спрашивают Телеграм

Этот code достаточно быстро протухает (в api точно не указано (раз, два), но где-то меньше часа кажется прошло) и если я даже сохраню этот код, то со временем всё равно получу исключение:

А это значит, нужно снова лезть (руками!) в телефон и в отладчике менять на лету значение переменной. Да-да, автор так и советует:

Только вот это совсем не production ready.

Кто может порекомендовать хороший способ автоматизировать этот процесс?

На ум приходит только вариант получения какого-то долгоиграющего (судя по api самого телеграмма — этот code можно получить либо в СМС на телефон, либо в приложение телеграмма) кода (на месяц хотя бы), но я не нашёл в api варианта получить такой токен (да и сомневаюсь, что по соображениям безопасности они будут выдаваться).

Похожие публикации:

  1. Telegram open network ton как заработать
  2. Почему в телеграмме флаг белоруссии красно белый
  3. Почему не могу зайти в телеграмм с телефона
  4. Телеграмм как корпоративный мессенджер

Источник: gshimki.ru

Рейтинг
( Пока оценок нет )
Загрузка ...