Add your description here
Project description
ITD-OAuth-SDK
SDK для авторизации через ИТД OAuth для серверов.
Установка
uv add itd-oauth-sdk
Документация
Client
client = Client(
client_id='ID клиента',
client_secret='Секрет'
)
Получить свой токен можно на официальном портале (если сайт не работает, можно обратиться в ЛС канала @itdStatus). Также можно использовать тестовые токены.
Получение ссылки на авторизацию
url = client.get_authorization_url(
scopes=['posts', 'users'],
redirect_uri='localhost:1000'
)
scope - разрешения (требовать разрешение на комментирование, список постов и тд). redirect_uri устанавливается только если у вас тестовый client_id (на него перешлет pop up).
Обмен кода
res = client.exchange_code('123456789')
access_token = res['access_token']
refresh_token = res['refresh_token']
access_token_expires_in = res['expires_in']
Код приходит в каллбэке (/auth/callback?code=xxx).
Обновить access_token
res = client.refresh_token(refresh_token)
access_token = res['token']
access_token_expires_in = res['expires_in']
Прокси
res = client.proxy(
access_token,
'get',
'posts',
data=None,
files=None,
headers=None,
json=None,
params={'limit': 20},
timeout=15
)
Отправить запрос через Oauth proxy. Есть практически все параметры из requests.request().
Прокси с авто-рефрешем
res = client.proxy_with_refresh(
refresh_token,
'get',
'posts',
data=None,
files=None,
headers=None,
json=None,
params={'limit': 20},
timeout=15,
access_token=access_token
)
Тоже самое, что и client.proxy(), только с функцией обновления токена (вызовет client.refresh_token если истек).
FastAPI роутер
from fastapi import FastAPI
app = FastAPI()
app.include_router(client.get_router(
prefix='/api/auth'
))
Добавляет эндпоинт POST /api/auth (или указанный в prefix), который принимает code и отдает token, а также записывает itd_oauth_refresh в куки.
Требуется установка FastAPI:
uv add itd-oauth-sdk[fastapi]
FastAPI зависимость
from fastapi import Depends
@app.get('me')
def api_get_me(token: dict = Depends(client.dependency)):
return token # {"sid":"08d7ef36-5914-45d5-95b2-f349d401fa48","clientId":"itd-oauth-dev","scope":["posts"],"sub":"587167e9-25ad-4948-afc0-2ee5bc9097ea","iat":1781596719,"exp":1781597919}
Добавляет данные пользователя (расшифрованный access_token) в контекст роута.
Интеграция с itd-sdk
from itd import ITDClient
ITDClient(config=client.sdk_config)
Изменяет целевой URL на OAuth прокси.
Требуется установка itd-sdk:
uv add itd-oauth-sdk[itd-sdk]
Scope
Scope определяет к каким данным и действиям получает доступ приложение.
Пользователь видит список запрошенных прав на странице подтверждения и может отклонить запрос.
Доступные варианты
| Scope | Разрешения |
|---|---|
users |
Просомотр и изменение профиля, подписки, блокировки |
posts |
Чтение, создание, изменение постов, лайки, репосты, комментарии |
comments |
Создание, изменение и удаление комментариев, лайки |
notifications |
Просмотр уведомлений |
files |
Загрузка файлов |
reports |
Отправка жалоб на контент |
hashtags |
Получние списка хэштэгов, поиск и получение постов по хэштэгу |
search |
Поиск пользователей и хэштэгов |
subscription |
Просмотр статуса подписки |
verification |
Просмотр статуса верификации аккаунта |
platform |
Просмотр ченжлога и актуальных версий приложений |
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 itd_oauth_sdk-0.1.0.tar.gz.
File metadata
- Download URL: itd_oauth_sdk-0.1.0.tar.gz
- Upload date:
- Size: 6.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.17 {"installer":{"name":"uv","version":"0.11.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Linux Mint","version":"22.3","id":"zena","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
93eb0a29416a590da473467437f9cb0bc21ea601dd7117ae71d19edf52beaaab
|
|
| MD5 |
03b42e439eebcd652c581c37cb9a41d9
|
|
| BLAKE2b-256 |
e8f129eae429ac3039b26c6e21b585a1b6164312d084072cfba5c15cb17ec96c
|
File details
Details for the file itd_oauth_sdk-0.1.0-py3-none-any.whl.
File metadata
- Download URL: itd_oauth_sdk-0.1.0-py3-none-any.whl
- Upload date:
- Size: 7.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.17 {"installer":{"name":"uv","version":"0.11.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Linux Mint","version":"22.3","id":"zena","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9790ab34a8a4ddc861e612ca7c75c8e15c098361383f15cce5d995be35ba4f00
|
|
| MD5 |
d0e8ca6f5c879de025f6da26e361a4be
|
|
| BLAKE2b-256 |
9d8824e7db6b71e201ea5903fee904621560bcbd8ed4777802dcd593f8542f80
|