ネイティブアプリの WebView セッションをバインドする。
POST {issuer}/api/native/v1/bind (NATIVE_BIND_PATH) を呼び出し、完了 URL を返す。
DPoP が設定されている場合は proof を自動付与する
(Authorization: DPoP <token> + DPoP: <proof>)。未設定時は Bearer で送る。
サーバーが発行した bind_id (bound_session_id)
アクセストークン (DPoP 有効時は DPoP-bound トークン)
認可 URL を生成する。
返された session はコールバック処理に必要なのでセッションストレージに保存すること。
JSON.stringify(session) / JSON.parse() でシリアライズ可能。
認可リクエストのオプション (スコープ・認可詳細・ACR・prompt 等)
リダイレクト先の url と、コールバック処理で使う session
認可コードをトークンに交換する。
コールバックで受け取った認可コード
コールバックで受け取った state パラメータ
createAuthorizationURL() で返されたセッション
DPoP 鍵ペアを破棄し、SDK 内部の DPoPHandle キャッシュも無効化する。
ログアウト・アカウント切替・鍵漏洩時のローテーション等で呼ぶ。
keyStore.clear() 単独ではメモリ上の DPoPHandle (既存鍵ペア) が
残り続け、以後のリクエストも古い鍵で署名されてしまう。このメソッドは
KeyStore の clear() に加えて内部キャッシュも破棄するため、
次回リクエスト時に新しい鍵ペアが生成される。
DPoP 未設定の場合は no-op。
KLON OIDC クライアント。
oauth4webapi をベースに、KLON 固有のパラメータ構築 (認可詳細・ACR・prompt 等) と DPoP バインディングを内包する。通常は createClient 経由で生成する。
認可フローは PKCE (
code_challenge_method=S256のみ) を必須とし、 トークン取得はauthorization_code/refresh_tokenの 2 種の grant_type を扱う。 issuer は環境ごとに異なるため、固定ホスト名を前提にせず ClientConfig.issuer で渡すこと。