Skip to main content

JWT server

JWTServer лёгкий и быстрый микросервис JWT.

Package version Supported Python versions

JWT Server является микросервисом для авторизации пользователей. Имеющий гибкие настройки и разные версии API.

  • Подключение Google Recaptcha V3
  • Отправка кода через сервис https://smsc.ru/ (стадия тестирования)

Особенности

  • Быстрый старт
  • Походит для тестирования frontend
  • Основан на Fast API framework и вдохновлен работами tiangolo

Route Entrypoints

Login

  • [POST] - /api/v1/login/access-token
  • [POST] - /api/v1/login/test-token
  • [POST] - /api/v1/password-recovery/{email}
  • [POST] - /api/v1/reset-password/
  • [POST] - /api/v1/phone_status/

Users

  • [GET] - /api/v1/users/
  • [POST] - /api/v1/users/
  • [GET] - /api/v1/users/me
  • [PUT] - /api/v1/users/me
  • [POST] - /api/v1/users/open
  • [GET] - /api/v1/users/{user_id}
  • [PUT] - /api/v1/users/{user_id}

Utils

  • [POST] - /api/v1/utils/test-celery/
  • [POST] - /api/v1/utils/test-email/

Items

  • [GET] - /api/v1/items/
  • [POST] - /api/v1/items/
  • [GET] - /api/v1/items/{id}
  • [PUT] - /api/v1/items/{id}
  • [DELETE] - /api/v1/items/{id}

Поддержка кода https://github.com/goltsevnet/jwtserver


Зависимости

Установка

python -m pip install jwtserver 

Подготовьте базу данных Postgres 14 и выше версии.

Используйте как вариант docker-compose.yaml

version: '3.1'

services:
  db:
    image: postgres:14.1-alpine
    restart: always
    build: .
    environment:
      POSTGRES_PASSWORD: example
    ports:
      - 5433:5432

Обязательно добавьте переменную в среду: POSTGRES__DSN для миграций.

Выполните команду:

upgradehead

Должны увидеть:

INFO  [alembic.runtime.migration] Context impl PostgresqlImpl.
INFO  [alembic.runtime.migration] Will assume transactional DDL.
INFO  [alembic.runtime.migration] Running upgrade  -> 98f3d19d2c0d, initial

Остальные переменные можно добавить в файл .env или через dotenv.

ENVIRONMENT=production
PROJECT_NAME=JwtServer

SMS__LOGIN=login
SMS__PASSWORD=password
SMS__IGNORE_ATTEMPTS=True

POSTGRES__DSN=postgresql+psycopg2://postgres:example@localhost:5433/postgres

RECAPTCHA=True

GOOGLE__RECAPTCHA__SECRET_KEY=SECRET_KEY
TOKEN__V1_SOL=12345679100987654321
TOKEN__SECRET_KEY=SECRET_KEY
TOKEN__ACCESS_TOKEN_EXPIRE_MINUTES=90
API_V1_STR=/api/v1

Примеры:

Для разработки

  • создайте файл dev.py
from jwtserver.server import dev

if __name__ == "__main__":
    dev(host="localhost", port=5000, log_level="info")

Интерактивная API документация

откройте Interactive API docs http://localhost:5000/docs

Вы увидите автоматическую интерактивную документацию по API.

Альтернативная API документация

откройте Alternative API redoc http://localhost:5000/redoc

Для продукции

  • создайте файл main.py
from jwtserver.app import app

app.debug = False
  • Gunicorn: gunicorn main:app

Лицензия

Этот проект находится под лицензией Apache 2.0.

Release files for jwtserver 0.0.40

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for jwtserver 0.0.40
File Size Uploaded
jwtserver-0.0.40.tar.gz 75.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for jwtserver 0.0.40
File Interpreter ABI Platform
jwtserver-0.0.40-py3-none-any.whl Python 3 none any Details

Total release size: 125.7 kB

Release files / jwtserver-0.0.40.tar.gz

Download URL jwtserver-0.0.40.tar.gz
Size 75.6 kB
Tags Source
SHA-256 checksum
How to use checksums
a0f93262881efa045fd55a43fdd4e617073e43e25c25c9da8cd7f80f38fbb428
BLAKE2b-256 checksum
How to use checksums
919a5b468f6dd63e70f4df1c45010e5a6ab1c607ed746efc19a44e993b4302b9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.3.2 CPython/3.11.2 Windows/10

Release files / jwtserver-0.0.40-py3-none-any.whl

Download URL jwtserver-0.0.40-py3-none-any.whl
Size 50.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9d8d0f5cf6c5648a7ae1ffe1e5f1e30ca3b42908d0212aa9f1a1d12021ee7a23
BLAKE2b-256 checksum
How to use checksums
9ba1813f31d40299baf20739f6062384b08c48d00c582378afe104db42c9d94d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.3.2 CPython/3.11.2 Windows/10

Release history Release notifications | RSS feed

This release

0.0.40 This release

2 release files

0.0.39

2 release files

0.0.38

2 release files

0.0.37

2 release files

0.0.36

2 release files

0.0.35

2 release files

0.0.34

2 release files

0.0.33

2 release files

0.0.31

2 release files

0.0.29

2 release files

0.0.28

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page