Auth0 Tg_bot
Telegram bot with authorization via Auth0 (Device Authorization Flow)
Project description:
This project is a Telegram bot designed for user authorization using Auth0 through Device Authorization Flow. After successful authorization, the bot provides the user with a JSON containing profile data and switches to a mode of repeating all received messages. In case of inactivity for more than 1 minute, the session ends, and the authorization is revoked.
Main functionality:
The user starts a chat with the bot.
The bot sends an authorization request via Auth0.
In case of failure, the bot shows an appropriate message with the option to try again.
After successful authorization, the bot:
Sends JSON with user data from Auth0.
Repeats all incoming messages from the user.
If the user is inactive for more than 60 seconds, the session ends, and the token is revoked.
Technology stack:
Programming language: Python 3.11
Telegram API: aiogram 3.x — asynchronous framework for creating Telegram bots
Authorization: Auth0 with support for Device Authorization Flow
Database: PostgreSQL 13
ORM: SQLAlchemy (with asyncpg support)
Containerization: Docker and Docker Compose
Testing: pytest with coverage over 87%
Result:
Telegram bot with secure authorization via Auth0, automatic session management, asynchronous architecture, high test coverage, and containerization for convenient deployment.
Project description:
This project is a Telegram bot designed for user authorization using Auth0 through Device Authorization Flow. After successful authorization, the bot provides the user with a JSON containing profile data and switches to a mode of repeating all received messages. In case of inactivity for more than 1 minute, the session ends, and the authorization is revoked.
Main functionality:
The user starts a chat with the bot.
The bot sends an authorization request via Auth0.
In case of failure, the bot shows an appropriate message with the option to try again.
After successful authorization, the bot:
Sends JSON with user data from Auth0.
Repeats all incoming messages from the user.
If the user is inactive for more than 60 seconds, the session ends, and the token is revoked.
Technology stack:
Programming language: Python 3.11
Telegram API: aiogram 3.x — asynchronous framework for creating Telegram bots
Authorization: Auth0 with support for Device Authorization Flow
Database: PostgreSQL 13
ORM: SQLAlchemy (with asyncpg support)
Containerization: Docker and Docker Compose
Testing: pytest with coverage over 87%
Result:
Telegram bot with secure authorization via Auth0, automatic session management, asynchronous architecture, high test coverage, and containerization for convenient deployment.