SerializableTokenCache クラス
このシリアル化は、独自の永続化を実装するための開始点となる可能性があります。
このクラスは、実際にはディスク/db/などにキャッシュを保持しません。 必要に応じて、ファイルベースの暗号化されていない永続化のための次の簡単なレシピで十分な場合があります。
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)
...
または、より高度なキャッシュ永続化ライブラリ、暗号化によるトークン キャッシュ永続化を提供する MSAL 拡張機能などを使用することもできます。
コンストラクター
SerializableTokenCache()
変数
| 名前 | 説明 |
|---|---|
|
has_state_changed
|
メモリ内のキャッシュの状態が前回の serialize 以降に変更されたか、 deserialize 呼び出しであるかを示します。 |
メソッド
| add | |
| deserialize |
serialize() によって以前に取得した状態からキャッシュを逆シリアル化する |
| modify | |
| serialize |
現在のキャッシュ状態を文字列にシリアル化します。 |
add
add(event, **kwargs)
パラメーター
| 名前 | 説明 |
|---|---|
|
event
必須
|
|
deserialize
serialize() によって以前に取得した状態からキャッシュを逆シリアル化する
deserialize(state: str | None) -> None
パラメーター
| 名前 | 説明 |
|---|---|
|
state
必須
|
|
modify
modify(credential_type, old_entry, new_key_value_pairs=None)
パラメーター
| 名前 | 説明 |
|---|---|
|
credential_type
必須
|
|
|
old_entry
必須
|
|
|
new_key_value_pairs
|
規定値: None
|
serialize
現在のキャッシュ状態を文字列にシリアル化します。
serialize() -> str
属性
has_state_changed
has_state_changed = False