メインコンテンツまでスキップ
バージョン: 0.13.0 (Previous)

⚙️ Authenticationハンドラー

AuthenticationハンドラーはExpressミドルウェアではなく、ルートパイプライン関数です。paramscontextからRouteHandlerPayloadの値を読み取り、成功した値をcontext.dataに結合するか、成功したResultをHTTPレスポンス記述子で終了します。

インベントリ

ハンドラーパイプラインでの役割入力 / コンテキスト結果 / 動作 / エラールートでの使用先
TARGET_CONFIRM_EMAIL定数なし正確に 'confirm-email' のターゲット。カスタム合成のみ
TARGET_CHANGE_EMAIL定数なし正確に 'change-email' のターゲット。カスタム合成のみ
loginTerminator非推奨のターミネーターcontext.data.identity、アクセストークン、リフレッシュトークンレガシーなBearerログインボディを返すか、前のエラーをスローする。カスタム合成のみ
setResponseCookie非推奨のハンドラーレスポンス、トークン、設定アクセス/リフレッシュクッキーを設定; レスポンスがない場合は 500loginWithCredentialsRouteverifyMfaCodeRouterefreshTokenRouteloginWithOnetimeTokenRoute
loginWithCredentials非推奨のハンドラークレデンシャル、アイデンティティ、エラー設定identity を書き込み; ロックされたまたは間違ったクレデンシャルは 401loginWithCredentialsRoute
createAccessToken非推奨のハンドラーリクエストセキュリティデータ、アイデンティティID、アクセストークン設定accessToken を書き込み; 生成失敗は 500loginWithCredentialsRouteverifyMfaCodeRouteloginWithOnetimeTokenRoute
createRefreshToken非推奨のハンドラーリクエストセキュリティデータ、アイデンティティID、リフレッシュトークン設定リフレッシュレコードを保存し refreshToken を書き込み; 生成失敗は 500loginWithCredentialsRouteverifyMfaCodeRouteloginWithOnetimeTokenRoute
logoutTerminator非推奨のターミネーター前パイプラインの結果{statusCode: 204} を返すか、前のエラーをスローする。logoutRoute
logout非推奨のハンドラーリクエスト/レスポンス、選択された認証器、トークン設定、アイデンティティクッキーを消去し提示されたリフレッシュトークンを無効化する。logoutRoute
registerTerminator非推奨のターミネーター登録済みアイデンティティデータ{email, id, statusCode: 201} を返すか、スローする。registerCredentialsRoute
registerCredentials非推奨のハンドラー登録/招待メール、パスワード、アイデンティティidentity を作成して書き込み; 400422、または 500 のエラーを返す。registerCredentialsRoute
refreshToken非推奨のハンドラーリクエスト、シークレット、トークン有効期間、アイデンティティ古いリフレッシュレコードを取り消し、ローテートされたトークンペアを書き込む。refreshTokenRoute
checkToken非推奨のハンドラーボディトークン、オプションのターゲット、リクエストセキュリティデータ、ワンタイムトークンストアidentityId または tokenInfo を書き込み; ワンタイムトークンを使用する可能性がある。registerCredentialsRouteconfirmEmailRoute
deleteToken非推奨のハンドラーベアラー/Cookie トークンと要求されたアイデンティティ IDトランスポートと所有者を検査した後、アイデンティティ/トークンレコードを論理削除します。カスタム合成のみ
loginWithOnetimeToken非推奨のハンドラー本文のトークン、シークレット、アイデンティティ、ワンタイムトークンストアログイン用ターゲットのトークンを消費し、identity を書き込みます。loginWithOnetimeTokenRoute
generateOnetimeToken非推奨のハンドラートークンデータ/ターゲット/フィンガープリント、リクエスト、シークレット、ストアtoken を保存して書き込みます。失敗時は 400 または 500 を返します。generateOnetimeTokenRoute
restoreOnetimeTokenハンドラー本文のトークン、シークレット、ワンタイムトークンストアステートフルトークンを要求し、invalid を解除して token を書き込みます。restoreOnetimeTokenRoute
invalidateOnetimeTokenハンドラートークン/フィンガープリント、シークレット、ワンタイムトークンストアステートフルトークンを要求し、invalid を設定して token を書き込みます。invalidateOnetimeTokenRoute
confirmEmailTerminatorターミネーターcontext.data.confirmEmail{statusCode: 204} を返します。確認データがない場合は 500 です。confirmEmailRoute
confirmEmail非推奨のハンドラーcontext.data.tokenInfo.identityId、アイデンティティemailVerified: true を設定し、confirmEmail を書き込みます。confirmEmailRoute
buildCheckConfirmEmailTokenPayloadハンドラーパイプラインペイロードcheckToken.target: 'confirm-email' を書き込みます。confirmEmailRoute
sendVerificationEmailTerminator非推奨のターミネーター送信結果と生成済みトークン{statusCode: 204} を返します。データがない場合は 500 です。sendVerificationEmailRoute
sendVerificationEmail非推奨のハンドラーアイデンティティ ID、検証/メール設定、リクエスト、ストアトークンを生成、保存、メール送信し、送信結果とトークンを書き込みます。sendVerificationEmailRoute

詳細

TARGET_CONFIRM_EMAIL

実装

正確に 'confirm-email' のターゲットを返す定数です。カスタム合成でのみ使用されます。

TARGET_CHANGE_EMAIL

実装

正確に 'change-email' のターゲットを返す定数です。カスタム合成でのみ使用されます。

loginTerminator

実装

非推奨のターミネーターです。エラー結果をスローし、成功時は正確に {statusCode: 204} を返します。

setResponseCookie

実装

非推奨の非同期ハンドラーです。デフォルト設定を使用してアクセストークンとリフレッシュトークンの両方のクッキーを設定し、maxAgeexpires は使用しません; レスポンスがない場合は 500 を返します。loginWithCredentialsRouteverifyMfaCodeRouterefreshTokenRouteloginWithOnetimeTokenRoute で使用されます。

loginWithCredentials

実装

非推奨の非同期ハンドラーです。クレデンシャルを認証しアイデンティティに書き込みます; ロックされたまたは間違ったクレデンシャルは 401 を返します。loginWithCredentialsRoute で使用されます。

createAccessToken

実装

非推奨の非同期ハンドラーです。リクエストセキュリティデータを基にアクセストークンを生成し、アイデンティティIDとアクセストークン設定を使用します。生成失敗は 500 です。loginWithCredentialsRouteverifyMfaCodeRouteloginWithOnetimeTokenRoute で使用されます。

createRefreshToken

実装

非推奨の非同期ハンドラーです。アイデンティティID、リフレッシュトークン設定、およびリクエストセキュリティデータに基づいてリフレッシュレコードを保存し refreshToken を書き込みます。生成失敗は 500 です。loginWithCredentialsRouteverifyMfaCodeRouteloginWithOnetimeTokenRoute で使用されます。

logoutTerminator

実装

非推奨のターミネーターです。エラー結果をスローし、成功時は正確に {statusCode: 204} を返します。logoutRoute で最終処理として使用されます。

logout

実装

非推奨の非同期ハンドラーです。デフォルト設定で両方のセッションクッキーを消去し、maxAgeexpires は使用しません。context.authenticate または Bearer フォールバックを呼び出し、リクエストからリフレッシュトークンを解決します。リフレッシュトークンがない場合は冪等性の成功とみなし、アクセスとリフレッシュのアイデンティティの不整合は 401 です。一致するJTIレコードを削除し、すでに削除されている場合は成功扱い、取り消しを適用できない場合は 500 を返します。logoutRoute で使用されます。

registerTerminator

実装

非推奨のターミネーターです。エラー結果をスローし、それ以外は context.data.email と ID を読み取って {email, id, statusCode: 201} を返します。registerCredentialsRoute で登録後に使用されます。

registerCredentials

実装

非推奨の非同期ハンドラーです。メールは context.data.invitation.email またはリクエストボディから取得され、パスワードはボディから取得されます。欠落値は 400、既存アイデンティティは 422、ルックアップ失敗は 500、挿入IDの欠落は 400、ハッシュ化/挿入失敗は 500 です。成功時は基本アイデンティティ(attempts: 0locked: false、ハッシュ化されたパスワード)を作成し {identity: {email, id}} を書き込みます。registerCredentialsRoute で使用されます。

refreshToken

実装

非推奨の非同期ハンドラーです。リクエスト検証データを導出し、Bearerボディまたはクッキーのリフレッシュトークンを解決し、identityId と JTI を要求します。不足/再利用/削除済みレコードは 401 で拒否され、トークンが見つからない場合は 422 を返します。古いレコードを1つだけ取り消し(変更されていない場合は 400)、交換レコードを挿入(スロー時は 500)、両方のトークンを生成し context.data.accessTokenrefreshToken を書き込みます。refreshTokenRoute で使用されます。

checkToken

実装

非推奨のハンドラーです(同名ブロックとは異なります)。params.requestBody.tokencontext.data.checkToken.target、リクエストホスト/IP/ユーザーエージェント/フィンガープリント、シークレット、および db.onetimetokens を読み取ります。有効なアクセストークンはIPチェックを強制したセキュリティチェックをパスし identityId を書き込みます。一致するアクティブなワンタイムトークンは無効化され、そのデータが tokenInfo として書き込まれます。検証/セキュリティ/ターゲットの失敗は 400、最終バリデーション失敗は 401、データベース呼び出しはローカルではキャッチされません。招待ブランチの registerCredentialsRouteconfirmEmailRoute で使用されます; checkTokenRoute は代わりにブロックエクスポートを呼び出します。

deleteToken

実装

非推奨のカスタム合成ハンドラーです。クッキーとBearerの取得を独立して試行し、少なくとも1つを必要とします (401)、両者が存在する場合は両者の一致を要求します (422)。要求されたアイデンティティはパイプラインデータ、リクエストボディ、またはクエリから取得されます (400 が欠落時)。アプリトークンは要求されたアイデンティティのレコードを削除可能; ユーザートークンは自身のもののみ削除可能です (401)。新しいデータを結合せず、認証済みルートの消費者は持っていません。

loginWithOnetimeToken

実装

非推奨の非同期ハンドラーです。ボディトークンを読み取り、'onetime' トークンを検証し、アクティブな保存済みレコードを要求し、無効化し、保存されたトークンを再検証し、ターゲット 'login' を要求し、参照されるアイデンティティを読み込みます。間違った型/ターゲットまたは欠落/無効な保存トークンは 403、アイデンティティの欠落は 404、スローされた操作はすべて 401 に折りたたまれます。成功時は context.data.identity を書き込みます。loginWithOnetimeTokenRoute で使用されます。

generateOnetimeToken

実装

非推奨の非同期ハンドラーです。フィンガープリント、ターゲット、トークンデータは context.data、直接 context、リクエストボディから解決されます; tokenData はオブジェクトである必要があります (400)。リクエストから検証データを構築し、トークンを生成し、db.onetimetokens{invalid: false, token} を保存し、context.data.token を書き込みます。無効なトークンまたはスローされた挿入は 500、挿入IDの欠落は 400 です。generateOnetimeTokenRoute で使用されます。

restoreOnetimeToken

実装

非推奨の非同期ハンドラーです。params.requestBody.token を読み取り、設定されたシークレットで復号し、復号済みの stateful フラグを要求します。復号失敗は 401、stateful ではないトークンは 422、スローされたデータベース更新は 500 です。一致するすべての保存済みトークンを invalid: false に設定し context.data.token を書き込み; マッチゼロでも成功扱いとなります。restoreOnetimeTokenRoute で使用されます。

invalidateOnetimeToken

実装

非推奨の非同期ハンドラーです。トークンとフィンガープリントはパイプラインデータ、直接コンテキスト、リクエストボディから解決されます。欠落値、復号失敗、またはstateful ではないトークンのいずれかが 422 です; スローされた更新は 500 です。一致するすべての保存済みトークンを invalid: true に設定し context.data.token を書き込み; マッチゼロでも成功扱いとなります。invalidateOnetimeTokenRoute で使用されます。

confirmEmailTerminator

実装

confirmEmailRoute 用のターミネーターです。前のエラーをスローし、真値の context.data.confirmEmail を要求し、その結果がない場合は NodeblocksError(500) をスローし、それ以外は正確に {statusCode: 204} を返します。

confirmEmail

実装

非推奨の非同期ハンドラーです。context.data.tokenInfo.identityId を読み取り、文字列を要求 (403) し、一致するアイデンティティに emailVerified: true を設定します。マッチなしは 404、変更なしは 409、スローされた更新は 500 です。成功時は更新結果を context.data.confirmEmail として書き込みます。confirmEmailRoute で使用されます。

buildCheckConfirmEmailTokenPayload

実装

失敗しない非同期ハンドラーです: ハンドラーレベルの定数として context.data.checkToken.targetTARGET_CONFIRM_EMAIL を書き込み、それ以外はペイロードを保持します。confirmEmailRoute でハンドラー checkToken の前に配置されます。

sendVerificationEmailTerminator

実装

sendVerificationEmailRoute 用の非推奨のターミネーターです。前のエラーをスローし、真値の context.data.sendVerificationEmailcontext.data.token の両方を要求し、いずれかが欠落している場合は NodeblocksError(500) をスローし、それ以外は {statusCode: 204} を返します。

sendVerificationEmail

実装

非推奨の非同期ハンドラーです。アイデンティティIDは context.data.identityId、パスパラメータ、context.data.identity.id から解決されます。機能の有効化、メールサービス、ボディ/件名/URL設定を要求 (400) し、アイデンティティを読み込み (404) メールを確認 (400) し、リクエスト対応の確認トークン検証データを構築し、トークンを生成して保存し、メッセージを送信します。トークン生成失敗は 501; 配信不成功またはキャッチされた操作はすべて 500 です。成功時は context.data.sendVerificationEmailtoken を書き込みます。sendVerificationEmailRoute で使用されます。