Skip to main content

oauth2.0 stlock

Project description

Библиотека Python stlock

Быстрый старт

Пример с библиотекой FastAPI

pip install stlock
pip install fastapi
pip install uvicorn

app.py:

from fastapi import FastAPI, HTTPException, Body
from stlock import AuthClient


# создание экземпляра класса
AC = AuthClient(client_id="client",  # id клиента
    client_secret="secret",  # secret клиента
    code_redirect_uri="http://localhost:8000/code",  # ссылка перенаправления запроса с кодом
    service_endpoint="https://bba6q6chdp0eatf6n0ms.containers.yandexcloud.net",  # ссылка на сервис авторизации
    )


app = FastAPI()


# Регистрация пользователя
@app.post("/register", status_code=status.HTTP_201_CREATED)
def register_user(username=Body(...), password=Body(...)):
   data, status_code = AC.register(username, password)
   if status_code >= 400:
       raise HTTPException(status_code, data["detail"])
   return data


#Авторизация пользователя
@app.post('/login')
def login(username: str = Body(...), password: str = Body(...)):
   data, status_code = AC.authorize_user(username, password)
   if status_code >= 400:
       raise HTTPException(status_code, data["detail"])
   return data


@apps.get('/code')
def getcode(code=Query(None)):
   data, status_code = AC.get_tokens(code)
   if status_code >= 400:
       raise HTTPException(status_code, data["detail"])
   return data

Для запуска сервера:

uvicorn app.py:app

Описание методов:

AC.register(username, password)

Создаёт нового пользователя в базе данных

AC.authorize_user(username, password)

Авторизирует запрос на логин пользователя, перенаправляет на страницу с кодом в query запросе

AC.get_tokens(code)

Выдаёт токены пользователя (access, refresh)

AC.decode(token)

Декодирует токен, возвращает словарь с данными о пользователе

AC.do_refresh(token)

Обменивает refresh token на новый access и refresh токены

примеры запросов :

создание пользователя:

POST http://localhost:8000/register
Body {
    "username": "user1",
    "password": "Password123!"
}

Output:

{
   
}

авторизация пользователя:

POST http://localhost:8000/login
Body {
    "username": "user1",
    "password": "Password123!"
}

Output:

{
   "access_token": "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJjbGllbnQiLCJleHAiOjE2ODQ3NzkyNTUsInN1YiI6IjZiN2Q0YzYxLTJhNzQtNDI3My05MzhjLTRlYTM3MGVjYmIxZSIsInJvbGUiOiJUZXN0In0.bpBW64XSQIFSdGHKt7RD2fWA-wiizk8bjcleTIfMqkg6QMaVtoulm-oyCe1nz_EViv7DQpZXjm82kTeXUzAmTg",
   "expires_in": 60,
   "refresh_token": "OGFLNTI1MDCTMWU2OS01MDQXLTHLYTMTYTRKNJMXMJGWNJVH",
   "token_type": "Bearer"
}

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

stlock-0.0.5.tar.gz (3.0 kB view details)

Uploaded Source

File details

Details for the file stlock-0.0.5.tar.gz.

File metadata

  • Download URL: stlock-0.0.5.tar.gz
  • Upload date:
  • Size: 3.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for stlock-0.0.5.tar.gz
Algorithm Hash digest
SHA256 fc2376450b42fce73893b0f1144e836904aaa759f8671273ea3a24601cd79609
MD5 d2ad802fd9f95901465f529450c19ab3
BLAKE2b-256 426181f6194ab5b8e6ce899bc6ba4494f786b245db7c65305aec2f4a7a3347e0

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