jwt authorization server
Project description
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a0f93262881efa045fd55a43fdd4e617073e43e25c25c9da8cd7f80f38fbb428
|
|
| MD5 |
6feca1043e3736a69377af0f12edc2ca
|
|
| BLAKE2b-256 |
919a5b468f6dd63e70f4df1c45010e5a6ab1c607ed746efc19a44e993b4302b9
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9d8d0f5cf6c5648a7ae1ffe1e5f1e30ca3b42908d0212aa9f1a1d12021ee7a23
|
|
| MD5 |
0bc50bb129c28bf1f1381c6e3b4ebc1a
|
|
| BLAKE2b-256 |
9ba1813f31d40299baf20739f6062384b08c48d00c582378afe104db42c9d94d
|