DigestProtocol
モジュールパス: /alier_sys/Auth.js
---
config:
class:
hideEmptyMembersBox: true
---
classDiagram
direction LR
IAuthProtocol <|-- DigestProtocol
link IAuthProtocol "./iauthprotocol"
概要
Digest 認証プロトコルに沿った認証処理を実行するクラスです。
通常、コンストラクタ以外のメソッドは AuthAgent が呼び出すため、開発者が呼び出す必要はありません。
Digest 認証について詳しくは RFC7616 を参照してください。
コンストラクタ
構文
new DigestProtocol(args)
args:{ host, path, method, getCredentialCallback[, cnonceLength][, refreshCred][, challengeTimeoutDelay[, challengeInterval]] }--- 以下のプロパティを持つオブジェクトです。host:string--- 認証取得先のホスト名です。path:string--- 認証取得先のパス名です。method:"GET"|"POST"|"PUT"|"DELETE"--- 認証取得先のメソッドです。getCredentialCallback:(envelope: Envelope) => void--- 資格情報を取得するためのコールバック関数です。開発者は資格情報をenvelopeに送ることでプロトコルに情報を伝達できます。cnonceLength:number?, defaults to32--- cnonce の長さを整数で指定します。cnonce は Basee64 エンコードされるため、ヘッダにのる値はこの長さより長くなります。refreshCred:boolean?, defaults tofalse--- 自動再認証に失敗したときにgetCredentialsCallbackで資格情報を渡すかどうかを指定します。challengeTimeoutDelay:number---getCredentialsCallbackのenvelopeに資格情報を送った後のタイムアウト時間をミリ秒単位で指定します。
note
厳密にはチャレンジレスポンスを受け取るためのリクエストの試行を打ち切るタイムアウトです。このリクエストは getCredentialsCallback を呼び出した時にはすでに試行を始めていて、タイムアウトの開始タイミングが資格情報を送ったタイミングなので上記のような説明となっています。
- **`challengeInterval`**: `number` --- チャレンジの間隔をミリ秒単位で指定します。セキュリティ上の理由から1秒などある程度大きい値にしてください。
`challengeInterval` を指定する場合は **必ず** `challengeTimeoutDelay` も指定してください。タイムアウトが指定されなかった場合はインターバルも0になります。
note
この値はチャレンジレスポンスを受け取るためのリクエストの試行の間隔時間です。チャレンジレスポンスを受け取るかタイムアウトとなるまで繰り返されます。
メソッド
auth()
- 認証取得処理を実行します。
revoke()
- 認証情報をプロトコルに沿って破棄します。
refresh()
- 認証情報を更新します。
プロパティ
scheme
このプロトコルの認証方式です。
型
string