Хранить аккаунты и сессии#
Пакет eazy_sdk_accounts хранит аккаунты, подтверждения, ограничения, связи, события и сессии.
Он не зависит от HTTP-клиента и подходит для нескольких созданных SDK.
Установите хранилище в памяти:
uv add "eazy-sdk-core[accounts]"
Создайте аккаунт, отметьте адрес подтверждённым и выберите подходящую запись из пула:
# examples/docs/integration_accounts.py
workspace = AccountWorkspace(MemoryStorage())
account = await workspace.accounts.create(
"ada@mail.example",
provider="mail",
meta={"display_name": "Ada"},
)
await workspace.verifications.mark(account, "email", target=account.identifier)
selected = await workspace.pool.pick(provider="mail", requires_verified={"email"})
Файл целиком
"""Store and select one account in the in-memory workspace."""
from __future__ import annotations
import asyncio
from eazy_sdk_accounts.storage import AccountWorkspace, MemoryStorage
async def main() -> None:
# docs:integration-accounts:start
# examples/docs/integration_accounts.py
workspace = AccountWorkspace(MemoryStorage())
account = await workspace.accounts.create(
"ada@mail.example",
provider="mail",
meta={"display_name": "Ada"},
)
await workspace.verifications.mark(account, "email", target=account.identifier)
selected = await workspace.pool.pick(provider="mail", requires_verified={"email"})
# docs:integration-accounts:end
print(f"account: {account.identifier}")
print(f"selected: {selected.identifier if selected else None}")
if __name__ == "__main__":
asyncio.run(main())
account: ada@mail.example
selected: ada@mail.example
MemoryStorage хранит состояние только в текущем процессе. Для SQLite или PostgreSQL используйте
плагин SQLModel.