Найти в Дзене
Дойти до IT

Ты не пройдешь! Или как защитить свой Token от любопытных глаз

Одним из ключевых аспектов в программировании является обеспечение безопасности, особенно при работе с логинами, паролями, API и другими конфиденциальными данными. Поэтому для начала мы создадим отдельный файл config.py, где определим константу TOKEN, которая будет содержать значение токена. Затем в файле run.py мы импортируем этот файл и используем значение константы TOKEN, в результате чего код будет выглядеть так: import asyncio from aiogram import Bot, Dispatcher from aiogram.types import Message from aiogram.filters import CommandStart from config import TOKEN bot = Bot(token=TOKEN) dp = Dispatcher() @dp.message(CommandStart()) async def cmd_start(message: Message): await message.answer('Привет!') async def main(): await dp.start_polling(bot) if __name__ == '__main__': try: asyncio.run(main()) except KeyboardInterrupt: print('Exit') Если вам не нравится идея сокрытия токена в отдельном файле config.py, вы можете использовать модуль python-dotenv дл
Оглавление

Одним из ключевых аспектов в программировании является обеспечение безопасности, особенно при работе с логинами, паролями, API и другими конфиденциальными данными. Поэтому для начала мы создадим отдельный файл config.py, где определим константу TOKEN, которая будет содержать значение токена.

-2

Затем в файле run.py мы импортируем этот файл и используем значение константы TOKEN, в результате чего код будет выглядеть так:

-3
import asyncio
from aiogram import Bot, Dispatcher
from aiogram.types import Message
from aiogram.filters import CommandStart
from config import TOKEN
bot = Bot(token=TOKEN)
dp = Dispatcher()
@dp.message(CommandStart())
async def cmd_start(message: Message):
await message.answer('Привет!')
async def main():
await dp.start_polling(bot)
if __name__ == '__main__':
try:
asyncio.run(main())
except KeyboardInterrupt:
print('Exit')

-4

python-dotenv

Если вам не нравится идея сокрытия токена в отдельном файле config.py, вы можете использовать модуль python-dotenv для его защиты. Давайте создадим файл с именем .env, в котором будут храниться все переменные, требующие защиты.

Чтобы получить доступ к константе TOKEN из файла .env, сначала необходимо установить соответствующую библиотеку:

-5
pip install python-dotenv

Затем импортируем в файл run.py модули os и load_dotenv:

-6

Теперь мы можем передать константу TOKEN в наш класс Bot, используя модуль dotenv:

-7

Но перед этим необходимо загрузить все переменные, которые находятся в файле dotenv, добавив соответствующий код:

-8

Финальный код:

-9
import os
import asyncio
from dotenv import load_dotenv
from aiogram import Bot, Dispatcher
from aiogram.types import Message
from aiogram.filters import CommandStart
load_dotenv()
bot = Bot(token=os.getenv('TOKEN'))
dp = Dispatcher()
@dp.message(CommandStart())
async def cmd_start(message: Message):
await message.answer(text='Привет!')
async def main():
await dp.start_polling(bot)
if __name__ == '__main__':
try:
asyncio.run(main())
except KeyboardInterrupt:
print('Бот выключен')

Даже, если эта статья будет неактуальна, она всё равно станет отличным блокнотом для меня, чтобы не потерять некоторые команды и не гуглить их повторно. Может через пару лет я вернусь сюда, чтобы вспомнить некоторые моменты. А дочитавшим до конца желаю, чтобы ваши работы, проекты и поделки были актуальными всегда!=)

Обязательно к прочтнению!