Token'lar ve depolar¶
Token
dataclass
¶
Token(
access_token: str,
token_type: str = "Bearer",
expires_at: float | None = None,
refresh_token: str | None = None,
refresh_expires_at: float | None = None,
scope: str = "",
)
Identity sunucusundan alınan bir OAuth2 token'ı.
Attributes:
| Name | Type | Description |
|---|---|---|
access_token |
str
|
API çağrılarında kullanılan token. |
expires_at |
float | None
|
Geçerliliğin bittiği an (epoch saniyesi); bilinmiyorsa |
refresh_token |
str | None
|
Yalnızca authorization code akışında ( |
refresh_expires_at |
float | None
|
Refresh token'ın tahmini bitiş anı (alındıktan 24 saat sonra). |
scope |
str
|
Verilen kapsamlar (boşlukla ayrılmış). |
from_response
classmethod
¶
Token uç noktasının JSON yanıtından Token üretir.
is_expired
¶
Access token'ın süresi dolmuş (ya da leeway saniye içinde dolacak) mı?
can_refresh
¶
Kullanılabilir bir refresh token var mı?
has_scope
¶
Token istenen kapsam(lar)ın hepsini içeriyor mu? Kapsamı bilinmeyen token True döner.
TokenStore
¶
Token'ların saklandığı yer.
Kendi deponuzu (Redis, veritabanı...) yazmak için bu üç metodu sağlamanız yeterli.
Anahtarlar "client:<kapsamlar>" (uygulama token'ları) ve "user:<kullanıcı>"
(müşteri token'ları) biçimindedir. Metotlar asenkron istemciden de senkron çağrılır;
bu yüzden hızlı olmaları gerekir.
FileTokenStore
¶
Token'ları bir JSON dosyasında saklar; betikler ve CLI araçları için uygundur.
Dosya yalnızca sahibinin okuyabileceği izinlerle (0600) ve atomik olarak yazılır.
İçinde access/refresh token bulunduğu için bu dosyayı sürüm kontrolüne eklemeyin.