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