SerializableTokenCache Kelas

Serialisasi ini dapat menjadi titik awal untuk mengimplementasikan kegigihan Anda sendiri.

Kelas ini TIDAK benar-benar mempertahankan cache pada disk/db/etc.. Tergantung pada kebutuhan Anda, resep sederhana berikut untuk persistensi berbasis file dan tidak terenkripsi mungkin cukup:


   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)
   ...

Atau, Anda dapat menggunakan pustaka persistensi cache yang lebih canggih, Ekstensi MSAL, yang menyediakan persistensi cache token dengan enkripsi, dan banyak lagi.

Konstruktor

SerializableTokenCache()

Variabel

Nama Deskripsi
has_state_changed

Menunjukkan apakah status cache dalam memori telah berubah sejak terakhir serialize atau deserialize panggilan.

Metode

add
deserialize

Deserialisasi cache dari status yang sebelumnya diperoleh oleh serialize()

modify
serialize

Menserialisasikan status cache saat ini ke dalam string.

add

add(event, **kwargs)

Parameter

Nama Deskripsi
event
Diperlukan

deserialize

Deserialisasi cache dari status yang sebelumnya diperoleh oleh serialize()

deserialize(state: str | None) -> None

Parameter

Nama Deskripsi
state
Diperlukan

modify

modify(credential_type, old_entry, new_key_value_pairs=None)

Parameter

Nama Deskripsi
credential_type
Diperlukan
old_entry
Diperlukan
new_key_value_pairs
Nilai default: None

serialize

Menserialisasikan status cache saat ini ke dalam string.

serialize() -> str

Atribut

has_state_changed

has_state_changed = False