SerializableTokenCache Klasse
Diese Serialisierung kann ein Ausgangspunkt sein, um Ihre eigene Persistenz zu implementieren.
Diese Klasse behält den Cache nicht tatsächlich auf dem Datenträger/db/usw. bei. Je nach Bedarf reicht das folgende einfache Rezept für dateibasierte, unverschlüsselte Persistenz möglicherweise aus:
import os, atexit, msal
cache_filename = os.path.join( # Persist cache into this file
os.getenv(
# Automatically wipe out the cache from Linux when user's ssh session ends.
# See also https://github.com/AzureAD/microsoft-authentication-library-for-python/issues/690
"XDG_RUNTIME_DIR", ""),
"my_cache.bin")
cache = msal.SerializableTokenCache()
if os.path.exists(cache_filename):
cache.deserialize(open(cache_filename, "r").read())
atexit.register(lambda:
open(cache_filename, "w").write(cache.serialize())
# Hint: The following optional line persists only when state changed
if cache.has_state_changed else None
)
app = msal.ClientApplication(..., token_cache=cache)
...
Alternativ können Sie eine komplexere Cachepersistenzbibliothek, MSAL-Erweiterungen, verwenden, die die Tokencachepersistenz mit Verschlüsselung und mehr bereitstellt.
Konstruktor
SerializableTokenCache()
Variablen
| Name | Beschreibung |
|---|---|
|
has_state_changed
|
Gibt an, ob sich der Cachestatus im Speicher seit dem letzten serialize oder deserialize aufruf geändert hat. |
Methoden
| add | |
| deserialize |
Deserialisieren des Caches aus einem Zustand, der zuvor durch serialize() abgerufen wurde |
| modify | |
| serialize |
Serialisieren Sie den aktuellen Cachestatus in eine Zeichenfolge. |
add
add(event, **kwargs)
Parameter
| Name | Beschreibung |
|---|---|
|
event
Erforderlich
|
|
deserialize
Deserialisieren des Caches aus einem Zustand, der zuvor durch serialize() abgerufen wurde
deserialize(state: str | None) -> None
Parameter
| Name | Beschreibung |
|---|---|
|
state
Erforderlich
|
|
modify
modify(credential_type, old_entry, new_key_value_pairs=None)
Parameter
| Name | Beschreibung |
|---|---|
|
credential_type
Erforderlich
|
|
|
old_entry
Erforderlich
|
|
|
new_key_value_pairs
|
Standardwert: None
|
serialize
Serialisieren Sie den aktuellen Cachestatus in eine Zeichenfolge.
serialize() -> str
Attribute
has_state_changed
has_state_changed = False