Blog-2

logo

Blog App

Blog App — это веб-приложение на Django для создания, управления и просмотра блог-постов с аутентификацией через JWT-токены.

Основные возможности

Стек технологий

Установка и запуск

Клонирование репозитория

git clone https://github.com/RustamovAkrom/Blog-2.git
cd Blog-2

Настройка виртуального окружения

Создайте и активируйте виртуальное окружение:

python -m venv venv
source venv/bin/activate  # для Linux/macOS
venv\Scripts\activate  # для Windows

Установка зависимостей

Установите необходимые зависимости:

pip install -r requirements.txt

Настройка переменных окружения

Создайте файл .env в корне проекта и добавьте туда настройки для базы данных и JWT. Пример:

#!/bin/bash

SECRET_KEY=<your django secret key>

DEBUG=True # default

ALLOWED_HOSTS=localhost,127.0.0.1 # default

# `core.settings.development` or `core.setting.production`
DJANGO_SETTINGS_MODULE=core.settings.development # default

PRIVATE_KEY_PATH=security_settings/private_key.pem # default
PUBLIC_KEY_PATH=security_settings/public_key.pem # default

DATABASE_ENVIRON=sqlite # sqlite or postgres

# PostgreSQL configruations
DATABASE_NAME=<your database name>
DATABASE_USER=<your database user>
DATABASE_PASSWORD=<your database password>
DATABASE_HOST=localhost # default
DATABASE_PORT=5432 # default

ADMIN_USERNAME=admin # default
ADMIN_PASSWORD=password # default
ADMIN_EMAIL=admin@example.com # default

Применение миграций и создание суперпользователя

Примените миграции и создайте суперпользователя для доступа к админ-панели:

python manage.py migrate
python manage.py createadmin

Запуск сервера

Запустите сервер разработки:

python manage.py runserver

Теперь ваше приложение доступно по адресу: http://127.0.0.1:8000

Аутентификация через JWT

Blog App использует JWT для аутентификации. При входе в систему клиент получает два токена:

Пример использования JWT

  1. Получите Access и Refresh токены с помощью /api/token/.
  2. Используйте Access Token для доступа к защищённым эндпоинтам, добавляя его в заголовок запросов:

    Authorization: Bearer <access_token>
    
  3. Когда Access Token истекает, обновите его с помощью /api/token/refresh/, отправляя Refresh Token в теле запроса.

Структура проекта

Кэширование

Для ускорения работы Blog App можно использовать кэширование JWT-токенов. Этот механизм позволяет кэшировать данные пользователей для быстрого доступа без необходимости каждый раз проверять токен.

Лицензия

Этот проект лицензирован на условиях MIT License.

Documentations: https://rustamovakrom.github.io/Blog-2/