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 details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

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

Uploaded Python 3

File details

Details for the file jwtserver-0.0.40.tar.gz.

File metadata

  • Download URL: jwtserver-0.0.40.tar.gz
  • Upload date:
  • Size: 75.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.3.2 CPython/3.11.2 Windows/10

File hashes

Hashes for jwtserver-0.0.40.tar.gz
Algorithm Hash digest
SHA256 a0f93262881efa045fd55a43fdd4e617073e43e25c25c9da8cd7f80f38fbb428
MD5 6feca1043e3736a69377af0f12edc2ca
BLAKE2b-256 919a5b468f6dd63e70f4df1c45010e5a6ab1c607ed746efc19a44e993b4302b9

See more details on using hashes here.

File details

Details for the file jwtserver-0.0.40-py3-none-any.whl.

File metadata

  • Download URL: jwtserver-0.0.40-py3-none-any.whl
  • Upload date:
  • Size: 50.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.3.2 CPython/3.11.2 Windows/10

File hashes

Hashes for jwtserver-0.0.40-py3-none-any.whl
Algorithm Hash digest
SHA256 9d8d0f5cf6c5648a7ae1ffe1e5f1e30ca3b42908d0212aa9f1a1d12021ee7a23
MD5 0bc50bb129c28bf1f1381c6e3b4ebc1a
BLAKE2b-256 9ba1813f31d40299baf20739f6062384b08c48d00c582378afe104db42c9d94d

See more details on using hashes here.

Supported by

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