How to use the library in a client-server application: how to correctly embed telegram user authentication? #127
Unanswered
Kalinin-Andrey
asked this question in
Q&A
Replies: 1 comment
-
Привет, отвечу на русском, потом переведу на английский и сделаю отдельную страничку с документацией, вопросы хорошие)
Прошу прощения за долгий ответ, но надеюсь поможет) |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Как использовать библиотеку в клиент-серверном приложении: как корректно встроить аутентификацию телеграм-пользователей?
Всем привет!
Во-первых, спасибо за труд авторам библиотеки!
Мне пока не понятно как вашу библиотеку использовать в моём клиент-серверном приложении.
Клиент (
telegram.NewClient()
) сохраняет своё состояние в сессионом файле и соответствует чему: телеграм-приложению (со своимAppId
иAppHash
) или телеграм-пользователю? На сколько я понял, сессионный файл создасться один на одно телеграм-приложение, это верно?. Но является-ли этот механизм потокобезопасным? Как приложение будет работать если с ним параллельно будут логиниться и работать несколько телеграм пользователей?Должен-ли клиент (
telegram.NewClient()
) создаваться при каждом запросе или достаточно его создать только один раз при иннициализации сервера?Как в клиент-серверном приложении обработать случай когда "SESSION_PASSWORD_NEEDED"? В вашем примере кода между строками
client.AuthSignIn()
иclient.AuthCheckPassword()
сохраняется-ли какое-то состояние в оперативной памяти? Или можно разнести этот код в своём приложении по разным обработчикам запросов АПИ?Например:
- сделать роут
/auth-sign-in
, который принимает код, и в данном случае возвращает ошибку "SESSION_PASSWORD_NEEDED", при которой нужно вызывать следующий роут- роут
/auth-check-password
, который принимает пароль. Т.е. в этом обработчике будет только такой код:Так будет работать корректно?
Возможно, где-то можно посмотреть код реального web приложения, где используется ваша библиотека? Чтобы посмотреть реальный пример, который бы снял все подобные вопросы.
Спасибо!
=================================================
Hi all!
First, thanks for the work of the authors of the library!
It is not yet clear to me how to use your library in my client-server application.
The client (
telegram.NewClient()
) saves its state in the session file and corresponds to what: a telegram application (with its own AppId and AppHash) or a telegram user? As far as I understand, the session file will be created one by one telegram application, is that right ?. But is this mechanism thread-safe? How will the application work if several telegram users log in and work with it in parallel?Should the client (
telegram.NewClient()
) be created on each request, or is it enough to create it only once, in server initialization?How to handle the case when "SESSION_PASSWORD_NEEDED" in a client-server application? In your code example, between the lines
client.AuthSignIn()
andclient.AuthCheckPassword()
, is there any state stored in RAM? Or is it possible to spread this code in your application to different API request handlers?For example:
- make a
/auth-sign-in
route that accepts a code, and in this case returns a "SESSION_PASSWORD_NEEDED" error, in which you need to call the next route- the
/auth-check-password
route, which accepts a password. Those. in this handler there will be only such code:So will it work correctly?
Is somewhere I can see the code of a real web application where your library is used? To see a real example that would remove all such questions.
Thank you!
Beta Was this translation helpful? Give feedback.
All reactions