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 to 32 --- cnonce の長さを整数で指定します。cnonce は Basee64 エンコードされるため、ヘッダにのる値はこの長さより長くなります。

    • refreshCred: boolean?, defaults to false --- 自動再認証に失敗したときに getCredentialsCallback で資格情報を渡すかどうかを指定します。

    • challengeTimeoutDelay: number --- getCredentialsCallbackenvelope に資格情報を送った後のタイムアウト時間をミリ秒単位で指定します。

      note

      厳密にはチャレンジレスポンスを受け取るためのリクエストの試行を打ち切るタイムアウトです。このリクエストは getCredentialsCallback を呼び出した時にはすでに試行を始めていて、タイムアウトの開始タイミングが資格情報を送ったタイミングなので上記のような説明となっています。

    • challengeInterval: number --- チャレンジの間隔をミリ秒単位で指定します。セキュリティ上の理由から1秒などある程度大きい値にしてください。

      challengeInterval を指定する場合は 必ず challengeTimeoutDelay も指定してください。タイムアウトが指定されなかった場合はインターバルも0になります。

      note

      この値はチャレンジレスポンスを受け取るためのリクエストの試行の間隔時間です。チャレンジレスポンスを受け取るかタイムアウトとなるまで繰り返されます。

メソッド


auth()

  • 認証取得処理を実行します。

revoke()

  • 認証情報をプロトコルに沿って破棄します。

refresh()

  • 認証情報を更新します。

プロパティ


scheme

このプロトコルの認証方式です。

string