Skip to main content

jwt authorization server

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jwtserver-0.0.40.tar.gz (75.6 kB view hashes)

Uploaded Source

Built Distribution

jwtserver-0.0.40-py3-none-any.whl (50.1 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page