JWT server
JWTServer лёгкий и быстрый микросервис JWT.
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
Зависимости
- uvicorn https://www.uvicorn.org/
- fastapi https://fastapi.tiangolo.com/
- starlette https://www.starlette.io/
- passlib https://pypi.org/project/passlib/
- pydantic https://pydantic-docs.helpmanual.io/
- redis https://pypi.org/project/redis/
- python-jose https://pypi.org/project/python-jose/
- sqlalchemy https://pypi.org/project/SQLAlchemy/
- sqlalchemy_utils https://sqlalchemy-utils.readthedocs.io/
- asyncpg https://pypi.org/project/asyncpg/
- psycopg2-binary https://pypi.org/project/psycopg2-binary/
- httpx https://www.python-httpx.org/
- python-dotenv https://pypi.org/project/python-dotenv/
Установка
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)
| File | Size | Uploaded | |
|---|---|---|---|
| jwtserver-0.0.40.tar.gz | 75.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|