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, Query
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=201)
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
@app.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:
{
"detail": "User registred"
}
авторизация пользователя:
POST http://localhost:8000/login
Body {
"username": "user1",
"password": "Password123!"
}
Output:
{
"access_token": "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJjbGllbnQiLCJleHAiOjE2ODQ3ODUwMTUsInN1YiI6ImQ5YjBmYjE1LWJjYmQtNDNkNy1hMDdlLTAxNTIwMjBlZWI2ZiIsInJvbGUiOiJUZXN0In0.kOjADrKuTmLW-MGei4VEhf9Ce16eEzgle0UVB-t_vXoMQAtMQVzdI6iK14Rmds2w1bUMh82Wwru_AmMYS2NYYQ",
"expires_in": 60,
"refresh_token": "ZDI5ZMUZNDETNZYYZI01OTUZLTK5MZKTNJVLMDU1OTA5MDFM",
"token_type": "Bearer"
}
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
stlock-0.0.6.tar.gz
(3.0 kB
view details)
File details
Details for the file stlock-0.0.6.tar.gz.
File metadata
- Download URL: stlock-0.0.6.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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e1980ae2b4d01e38d20b4eef5d5d51c2a574cf06edc28ae2a98bf6626164d238
|
|
| MD5 |
f95c9fd033c90b780a370b8daf7f62f9
|
|
| BLAKE2b-256 |
49aa29090a6b797e544b455fd4273e6e8325fb0e74945fa6744f73afc9d42791
|