⚙️ 認証ハンドラー
認証ハンドラーは、Nodeblocksアプリケーションでユーザー認証と認可操作のコアビジネスロジック関数を提供します。これらのハンドラーは、ログイン、登録、トークン管理、メール確認の一般的なパターンをカプセル化します。
🎯 概要
認証ハンドラーは以下の目的で設計されています:
- 認証情報とトークンによるユーザー認証の処理
- バリデーションとセキュリティを含むユーザー登録の管理
- 作成、更新、バリデーションを含むトークン操作の処理
- メール確認ワークフローのサポート
- 適切なトークンバリデーションとフィンガープリンティングによるセキュリティの確保
📋 認証ハンドラータイプ
認証非同期ハンドラー
非同期認証操作(データベース呼び出し、トークン生成など)を実行する関数。
認証同期ハンドラー
同期認証操作(トークンバリデーション、レスポンスフォーマットなど)を実行する関数。
認証ターミネーターハンドラー
最終的な認証レスポンスをフォーマットして返す関数。
🔧 利用可能な認証ハンドラー
loginWithCredentials
メールとパスワードの認証情報でユーザーを認証します。
このハンドラーは非推奨です。
代替: Authentication Blocksを使用
目的: 認証情報バリデーションとアカウントセキュリティを含むユーザーログインを処理
パラメータ:
payload:RouteHandlerPayload- リクエストコンテキストとデータを含むparams.requestBody.emailまたはcontext.data.email: ユーザーメールparams.requestBody.passwordまたはcontext.data.password: ユーザーパスワードcontext.db: データベース接続context.configuration.maxFailedLoginAttempts: 最大失敗試行回数(デフォルト: 5)
戻り値: Result<RouteHandlerPayload, Error> - 成功時はidentity、エラー時はエラー
ペイロード要件:
- メールとパスワードはリクエストボディまたはコンテキストデータで提供される必要があります
context.dbはデータベース操作で利用可能である必要がありますcontext.configurationにはmaxFailedLoginAttempts設定が含まれている必要があります
主な機能:
- メールとパスワードが提供されていることを検証
- データベースでユーザーアイデンティティが存在するかチェック
- 認証のためにパスワードハッシュを比較
- 失敗試行後にアカウントロックを処理
- 成功したログイン時に失敗試行をリセット
- 成功時にidentityデータを返す
- データベースエラーを適切に処理
使用例:
import { handlers } from '@nodeblocks/backend-sdk';
const { loginWithCredentials } = handlers;
// Use in composition
const authPipeline = compose(loginWithCredentials, createAccessToken, createRefreshToken, setResponseCookie, loginTerminator);
createAccessToken
認証済みセッション用のユーザーアクセストークンを生成します。
このハンドラーは非推奨です。
代替: Authentication Blocksを使用
目的: フィンガープリントバリデーションを含む安全なアクセストークンを作成
パラメータ:
payload:RouteHandlerPayload- リクエストコンテキストとデータを含むparams.requestBody.fingerprintまたはcontext.data.fingerprint: セキュリティフィンガープリントparams.requestBody.idまたはcontext.data.idまたはcontext.identity.id: ユーザーIDcontext.request: Expressリクエストオブジェクトcontext.configuration.authSecrets: 認証シークレットcontext.configuration.jwtOpts: JWTオプション
戻り値: Result<RouteHandlerPayload, Error> - 成功時はaccessToken、エラー時はエラー
ペイロード要件:
- ユーザーIDはリクエストボディ、コンテキストデータ、またはidentityから利用可能である必要があります
context.requestにはトークン確認用のIPとヘッダーが含まれている必要がありますcontext.configuration.authSecretsとjwtOptsは利用可能である必要があります
主な機能:
- 複数のソース(リクエストボディ、コンテキストデータ、identity)からユーザーIDを抽出
- ドメイン、フィンガープリント、IP、ユーザーエージェントでトークン確認を構築
- JWTで安全なユーザーアクセストークンを生成
- 成功時にアクセストークンを返す
- トークン生成エラーを適切に処理
使用例:
import { handlers } from '@nodeblocks/backend-sdk';
const { createAccessToken } = handlers;
// Use in composition
const authPipeline = compose(loginWithCredentials, createAccessToken, createRefreshToken, setResponseCookie, loginTerminator);
createRefreshToken
トークン更新用のリフレッシュトークンを生成します。
このハンドラーは非推奨です。
代替: Authentication Blocksを使用
目的: データベースストレージを含む安全なリフレッシュトークンを作成
パラメータ:
payload:RouteHandlerPayload- リクエストコンテキストとデータを含むparams.requestBody.fingerprintまたはcontext.data.fingerprint: セキュリティフィンガープリントparams.requestBody.idまたはcontext.data.idまたはcontext.identity.id: ユーザーIDcontext.request: Expressリクエストオブジェクトcontext.db: データベース接続context.configuration.authSecrets: 認証シークレットcontext.configuration.refreshTokenOpts: リフレッシュトークンオプションcontext.configuration.refreshTokenExpireTime: リフレッシュトークンの有効期限
戻り値: Result<RouteHandlerPayload, Error> - 成功時はrefreshToken、エラー時はエラー
ペイロード要件:
- ユーザーIDはリクエストボディ、コンテキストデータ、またはidentityから利用可能である必要があります
context.requestにはトークン確認用のIPとヘッダーが含まれている必要がありますcontext.dbはトークンストレージで利用可能である必要がありますcontext.configurationには認証シークレットとリフレッシュトークンオプションが含まれている必要があります
主な機能:
- 複数のソースからユーザーIDとフィンガープリントを抽出
- ドメイン、フィンガープリント、IP、ユーザーエージェントでトークン確認を構築
- JWTで安全なリフレッシュトークンを生成
- 有効期限付きでトークンをデータベースに保存
- 成功時にリフレッシュトークンを返す
- トークン生成とストレージエラーを処理
使用例:
import { handlers } from '@nodeblocks/backend-sdk';
const { createRefreshToken } = handlers;
// Use in composition
const authPipeline = compose(loginWithCredentials, createAccessToken, createRefreshToken, setResponseCookie, loginTerminator);
setResponseCookie
HTTPレスポンスに認証Cookieを設定します。
このハンドラーは非推奨です。
代替: Authentication Blocksを使用
目的: アクセストークンとリフレッシュトークン用の安全なCookieを設定
パラメータ:
payload:RouteHandlerPayload- リクエストコンテキストとデータを含むcontext.response: Expressレスポンスオブジェクトcontext.cookieOpts: Cookie設定オプションcontext.data.accessToken: Cookieに設定するアクセストークンcontext.data.refreshToken: Cookieに設定するリフレッシュトークン
戻り値: Result<RouteHandlerPayload, Error> - 成功時は更新されたペイロード、エラー時はエラー
ペイロード要件:
context.responseはCookie設定で利用可能である必要がありますcontext.cookieOptsにはCookie設定が含まれている必要があります- アクセストークンおよび/またはリフレッシュトークンはコンテキストデータで利用可能である必要があります
主な機能:
- レスポンスオブジェクトが利用可能であることを検証
- Access-Control-Allow-Credentialsヘッダーを設定
- アクセストークン用の安全なCookieを設定
- リフレッシュトークン用の安全なCookieを設定
- セキュリティのために提供されたCookieオプションを使用
- 成功時に更新されたペイロードを返す
使用例:
import { handlers } from '@nodeblocks/backend-sdk';
const { setResponseCookie } = handlers;
// Use in composition
const authPipeline = compose(loginWithCredentials, createAccessToken, createRefreshToken, setResponseCookie, loginTerminator);
registerCredentials
メールとパスワードで新しいユーザーを登録します。
このハンドラーは非推奨です。
代替: Authentication Blocksを使用
目的: バリデーションとパスワードハッシュ化を含むユーザー登録を処理
パラメータ:
payload:RouteHandlerPayload- リクエストコンテキストとデータを含むparams.requestBody.email: ユーザーメールアドレスparams.requestBody.password: ユーザーパスワードcontext.data.invitation.email: 招待からのメール(オプション)context.db: データベース接続
戻り値: Result<RouteHandlerPayload, Error> - 成功時はidentity、エラー時はエラー
ペイロード要件:
- メールとパスワードはリクエストボディで提供される必要があります
context.dbはデータベース操作で利用可能である必要があります
主な機能:
- メールとパスワードが提供されていることを検証
- 重複を防ぐために既存のアイデンティティをチェック
- 保存前にパスワードを安全にハッシュ化
- タイムスタンプとIDを含む基本エンティティを作成
- 新しいアイデンティティをデータベースに挿入
- 成功時にidentityデータを返す
- データベースエラーを適切に処理
使用例:
import { handlers } from '@nodeblocks/backend-sdk';
const { registerCredentials } = handlers;
// Use in composition
const authPipeline = compose(registerCredentials, registerTerminator);
refreshToken
有効なリフレッシュトークンを使用してアクセストークンを更新します。
このハンドラーは非推奨です。
代替: Authentication Blocksを使用
目的: トークンをローテーションし、新しいアクセス/リフレッシュトークンペアを生成
パラメータ:
payload:RouteHandlerPayload- リクエストコンテキストとデータを含むparams.requestBody.fingerprintまたはcontext.data.fingerprintまたはcontext.fingerprint: セキュリティフィンガープリントcontext.request: Cookieとボディを含むExpressリクエストオブジェクトcontext.db: データベース接続context.configuration.authSecrets: 認証シークレットcontext.configuration.jwtOpts: JWTオプション
戻り値: Result<RouteHandlerPayload, Error> - 成功時は新しいトークン、エラー時はエラー
ペイロード要件:
context.requestにはCookieまたはボディにリフレッシュトークンが含まれている必要がありますcontext.dbはトークン無効化で利用可能である必要がありますcontext.configurationには認証シークレットとJWTオプションが含まれている必要があります
主な機能:
- 複数のソースからフィンガープリントを抽出
- Cookieとボディからリフレッシュトークンをバリデーション
- 一貫性のためにCookieとボディのトークンを比較
- データベースで古いリフレッシュトークンを無効化
- 新しいアクセスとリフレッシュトークンを生成
- 成功時に新しいトークンペアを返す
- トークンバリデーションと生成エラーを処理
使用例:
import { handlers } from '@nodeblocks/backend-sdk';
const { refreshToken } = handlers;
// Use in composition
const authPipeline = compose(refreshToken, setResponseCookie, loginTerminator);
logout
リフレッシュトークンを無効化し、Cookieをクリアしてユーザーをログアウトします。
このハンドラーは非推奨です。
代替: Authentication Blocksを使用
目的: トークンクリーンアップを含む安全なユーザーログアウトを処理
パラメータ:
payload:RouteHandlerPayload- リクエストコンテキストとデータを含むcontext.request: Cookieを含むExpressリクエストオブジェクトcontext.response: Expressレスポンスオブジェクトcontext.db: データベース接続context.configuration.authSecrets: 認証シークレット
戻り値: Result<RouteHandlerPayload, Error> - 成功時は更新されたペイロード、エラー時はエラー
ペイロード要件:
context.requestにはCookieにリフレッシュトークンが含まれている必要がありますcontext.responseはCookieクリアで利用可能である必要がありますcontext.dbはトークン無効化で利用可能である必要がありますcontext.configuration.authSecretsは利用可能である必要があります
主な機能:
- Cookieからリフレッシュトークンを抽出
- リフレッシュトークンをバリデーションして復号化
- 削除タイムスタンプでデータベースのトークンを無効化
- アクセスとリフレッシュトークンのCookieをクリア
- 成功時に更新されたペイロードを返す
- トークンバリデーションとクリーンアップエラーを処理
使用例:
import { handlers } from '@nodeblocks/backend-sdk';
const { logout } = handlers;
// Use in composition
const authPipeline = compose(logout, logoutTerminator);
checkToken
認証トークンをバリデーションして処理します。
このハンドラーは非推奨です。
代替: Authentication Blocksを使用
目的: トークンの真正性を検証し、ユーザー情報を抽出
パラメータ:
payload:RouteHandlerPayload- リクエストコンテキストとデータを含むparams.requestBody.token: バリデーションするトークンcontext.data.checkToken.target: トークンターゲット(オプション)context.request: Expressリクエストオブジェクトcontext.db: ワンタイムトークン用のデータベース接続context.configuration.authSecrets: 認証シークレット
戻り値: Result<RouteHandlerPayload, Error> - 成功時はトークン情報、エラー時はエラー
ペイロード要件:
- トークンはリクエストボディで提供される必要があります
context.requestはリクエスト情報抽出で利用可能である必要がありますcontext.dbはワンタイムトークンバリデーションで利用可能である必要がありますcontext.configuration.authSecretsは利用可能である必要があります
主な機能:
- リクエストからトークンとフィンガープリントを抽出
- JWTバリデーションを使用してトークンをバリデーション
- ユーザーアクセストークンとワンタイムトークンの両方を処理
- アクセストークンのセキュリティチェックを実行
- ワンタイムトークンのターゲットと状態をバリデーション
- 使用後にワンタイムトークンを無効化
- 成功時にトークン情報またはユーザーIDを返す
- トークンバリデーションエラーを適切に処理
使用例:
import { handlers } from '@nodeblocks/backend-sdk';
const { checkToken } = handlers;
// Use in composition
const authPipeline = compose(checkToken, someOtherHandler);
deleteToken
ユーザートークンを削除し、セッションを無効化します。
目的: セキュリティバリデーションを含むトークン削除を処理
パラメータ:
payload:RouteHandlerPayload- リクエストコンテキストとデータを含むcontext.data.idまたはparams.requestBody.idまたはparams.requestQuery.id: トークンを削除するユーザーIDcontext.request: Cookieとヘッダーを含むExpressリクエストオブジェクトcontext.db: データベース接続context.configuration.authSecrets: 認証シークレット
戻り値: Result<RouteHandlerPayload, Error> - 成功時は更新されたペイロード、エラー時はエラー
ペイロード要件:
- ユーザーIDはコンテキストデータ、リクエストボディ、またはクエリパラメータで提供される必要があります
context.requestはトークン抽出で利用可能である必要がありますcontext.dbはトークン無効化で利用可能である必要がありますcontext.configuration.authSecretsは利用可能である必要があります
主な機能:
- 複数のソースからユーザーIDを抽出
- CookieとBearerヘッダーからトークンをバリデーション
- 一貫性のためにCookieとBearerトークンを比較
- アプリアクセストークンのスーパーパーミッションを処理
- ユーザーが自分のトークンのみを削除できることをバリデーション
- 削除タイムスタンプでデータベースのトークンを無効化
- 成功時に更新されたペイロードを返す
- トークンバリデーションと削除エラーを処理
使用例:
import { handlers } from '@nodeblocks/backend-sdk';
const { deleteToken } = handlers;
// Use in composition
const authPipeline = compose(deleteToken, someTerminator);
loginWithOnetimeToken
ワンタイムトークンを使用してユーザーを認証します。
このハンドラーは非推奨です。
代替: Authentication Blocksを使用
目的: 一時的なワンタイムトークンによる認証を処理
パラメータ:
payload:RouteHandlerPayload- リクエストコンテキストとデータを含むparams.requestBody.onetimeToken: 認証用のワンタイムトークンcontext.db: データベース接続context.configuration.authSecrets: 認証シークレット
戻り値: Result<RouteHandlerPayload, Error> - 成功時は更新されたペイロード、エラー時はエラー
ペイロード要件:
- ワンタイムトークンはリクエストボディで提供される必要があります
context.dbはトークンバリデーションで利用可能である必要がありますcontext.configuration.authSecretsは利用可能である必要があります
主な機能:
- リクエストボディからワンタイムトークンをバリデーション
- JWTを使用してトークンを復号化して検証
- トークンタイプが'onetime'であることをバリデーション
- トークンがデータベースに存在し、有効であることをチェック
- 成功した使用後にトークンを無効化
- トークンの目的が'onetime-login'であることをバリデーション
- 成功時に更新されたペイロードを返す
- トークンバリデーションとデータベースエラーを処理
使用例:
import { handlers } from '@nodeblocks/backend-sdk';
const { loginWithOnetimeToken } = handlers;
// Use in composition
const authPipeline = compose(loginWithOnetimeToken, createAccessToken, createRefreshToken, setResponseCookie, loginTerminator);
generateOnetimeToken
一時アクセス用のワンタイムトークンを生成します。
このハンドラーは非推奨です。
代替: Authentication Blocksを使用
目的: データベースストレージを含む安全なワンタイムトークンを作成
パラメータ:
payload:RouteHandlerPayload- リクエストコンテキストとデータを含むparams.requestBody.fingerprintまたはcontext.data.fingerprintまたはcontext.fingerprint: セキュリティフィンガープリントparams.requestBody.targetまたはcontext.data.targetまたはcontext.target: トークンターゲットparams.requestBody.tokenDataまたはcontext.data.tokenDataまたはcontext.tokenData: トークンデータオブジェクトcontext.request: Expressリクエストオブジェクトcontext.db: データベース接続context.configuration.authSecrets: 認証シークレット
戻り値: Result<RouteHandlerPayload, Error> - 成功時は生成されたトークン、エラー時はエラー
ペイロード要件:
- トークンデータはオブジェクトとして提供される必要があります
context.requestはリクエスト情報で利用可能である必要がありますcontext.dbはトークンストレージで利用可能である必要がありますcontext.configuration.authSecretsは利用可能である必要があります
主な機能:
- トークンデータがオブジェクトとして提供されていることを検証
- 複数のソースからフィンガープリント、ターゲット、トークンデータを抽出
- ドメイン、フィンガープリント、IP、ターゲットでトークン確認を構築
- JWTで安全なワンタイムトークンを生成
- 無効化フラグ付きでトークンをデータベースに保存
- 成功時に生成されたトークンを返す
- トークン生成とストレージエラーを処理
使用例:
import { handlers } from '@nodeblocks/backend-sdk';
const { generateOnetimeToken } = handlers;
// Use in composition
const authPipeline = compose(generateOnetimeToken, someTerminator);
restoreOnetimeToken
以前に無効化されたワンタイムトークンを復元します。
目的: 再利用のためにワンタイムトークンを再有効化
パラメータ:
payload:RouteHandlerPayload- リクエストコンテキストとデータを含むparams.requestBody.token: 復元するトークンcontext.db: データベース接続context.configuration.authSecrets: 認証シークレット
戻り値: Result<RouteHandlerPayload, Error> - 成功時は復元されたトークン、エラー時はエラー
ペイロード要件:
- トークンはリクエストボディで提供される必要があります
context.dbはトークン更新で利用可能である必要がありますcontext.configuration.authSecretsは利用可能である必要があります
主な機能:
- トークンがリクエストボディで提供されていることを検証
- JWTを使用してトークンを復号化して検証
- トークンがステートフル(ワンタイムトークン)であることをバリデーション
- データベースのトークン無効化ステータスを更新
- 成功時に復元されたトークンを返す
- トークンバリデーションとデータベースエラーを処理
使用例:
import { handlers } from '@nodeblocks/backend-sdk';
const { restoreOnetimeToken } = handlers;
// Use in composition
const authPipeline = compose(restoreOnetimeToken, someTerminator);
invalidateOnetimeToken
ワンタイムトークンを無効化します。
目的: ワンタイムトークンを永続的に無効化
パラメータ:
payload:RouteHandlerPayload- リクエストコンテキストとデータを含むparams.requestBody.tokenまたはcontext.data.tokenまたはcontext.token: 無効化するトークンparams.requestBody.fingerprintまたはcontext.data.fingerprintまたはcontext.fingerprint: セキュリティフィンガープリントcontext.db: データベース接続context.configuration.authSecrets: 認証シークレット
戻り値: Result<RouteHandlerPayload, Error> - 成功時は無効化されたトークン、エラー時はエラー
ペイロード要件:
- トークンとフィンガープリントは提供される必要があります
context.dbはトークン更新で利用可能である必要がありますcontext.configuration.authSecretsは利用可能である必要があります
主な機能:
- トークンとフィンガープリントが提供されていることを検証
- JWTを使用してトークンを復号化して検証
- トークンがステートフル(ワンタイムトークン)であることをバリデーション
- データベースのトークン無効化ステータスを更新
- 成功時に無効化されたトークンを返す
- トークンバリデーションとデータベースエラーを処理
使用例:
import { handlers } from '@nodeblocks/backend-sdk';
const { invalidateOnetimeToken } = handlers;
// Use in composition
const authPipeline = compose(invalidateOnetimeToken, someTerminator);
confirmEmail
確認トークンを使用してユーザーのメールアドレスを確認します。
このハンドラーは非推奨です。
代替: Authentication Blocksを使用
目的: トークンバリデーションを通じてメールアドレスを検証
パラメータ:
payload:RouteHandlerPayload- リクエストコンテキストとデータを含むcontext.data.tokenInfo.identityId: トークンからのアイデンティティIDcontext.db: データベース接続
戻り値: Result<RouteHandlerPayload, Error> - 成功時は確認結果、エラー時はエラー
ペイロード要件:
- identityIdは
context.data.tokenInfo.identityIdで利用可能である必要があります context.dbはユーザー更新で利用可能である必要があります
主な機能:
- コンテキストのトークン情報からidentityIdを抽出
- identityIdが文字列であることをバリデーション
- データベースのユーザーのメール確認ステータスを更新
- 更新前にユーザーが存在するかチェック
- メールがまだ確認されていないことをバリデーション
- 成功時に確認結果を返す
- データベースエラーを適切に処理
使用例:
import { handlers } from '@nodeblocks/backend-sdk';
const { confirmEmail } = handlers;
// Use in composition
const authPipeline = compose(checkToken, confirmEmail, confirmEmailTerminator);
buildCheckConfirmEmailTokenPayload
メール確認トークンバリデーション用のペイロードを構築します。
目的: メール確認ワークフロー用のトークンバリデーションを設定
パラメータ:
payload:RouteHandlerPayload- リクエストコンテキストとデータを含む
戻り値: Result<RouteHandlerPayload, Error> - 成功時はcheckToken設定
ペイロード要件:
- 特定の要件なし - このハンドラーは常に成功します
主な機能:
- checkToken設定をメール確認ターゲットとマージ
- ターゲットをTARGET_CONFIRM_EMAIL定数に設定
- 常に成功(エラー条件なし)
- checkToken設定を含む更新されたペイロードを返す
- メール確認ワークフローの準備ステップとして使用
使用例:
import { handlers } from '@nodeblocks/backend-sdk';
const { buildCheckConfirmEmailTokenPayload } = handlers;
// Use in composition
const authPipeline = compose(buildCheckConfirmEmailTokenPayload, checkToken, confirmEmail, confirmEmailTerminator);
sendVerificationEmail
ユーザーのメールアドレスに確認メールを送信します。
このハンドラーは非推奨です。
代替: Authentication Blocksを使用
目的: トークン生成を含むメール確認ワークフローを開始
パラメータ:
payload:RouteHandlerPayload- リクエストコンテキストとデータを含むcontext.data.identityIdまたはparams.requestParams.identityIdまたはcontext.data.identity.id: アイデンティティIDparams.requestBody.fingerprintまたはcontext.data.fingerprint: セキュリティフィンガープリントcontext.db: データベース接続context.mailService: メール送信用のメールサービスcontext.configuration.verifyEmailConfig: メール確認設定context.configuration.authSecrets: 認証シークレットcontext.configuration.jwtOpts: JWTオプション
戻り値: Result<RouteHandlerPayload, Error> - 成功時はメール結果とトークン、エラー時はエラー
ペイロード要件:
- identityIdは提供される必要があります
context.dbはユーザー検索とトークンストレージで利用可能である必要がありますcontext.mailServiceはメール送信で利用可能である必要がありますcontext.configuration.verifyEmailConfigは有効化され、設定されている必要がありますcontext.configuration.authSecretsとjwtOptsは利用可能である必要があります
主な機能:
- 複数のソースからidentityIdが提供されていることを検証
- 設定でメール確認機能が有効になっているかチェック
- メールサービスが利用可能であることを検証
- メール設定(bodyTemplate、subject、urlTemplate)をバリデーション
- データベースからユーザーを取得し、メールが存在することをバリデーション
- 安全なワンタイム確認トークンを生成
- 無効化フラグ付きでトークンをデータベースに保存
- メールサービスを使用して確認メールを送信
- 成功時にメール結果とトークンを返す
- 設定とメール送信エラーを処理
使用例:
import { handlers } from '@nodeblocks/backend-sdk';
const { sendVerificationEmail } = handlers;
// Use in composition
const authPipeline = compose(sendVerificationEmail, sendVerificationEmailTerminator);
🎯 認証ターミネーターハンドラー
loginTerminator
適切なレスポンスフォーマットでログインプロセスを終了します。
このハンドラーは非推奨です。
代替: Authentication Blocksを使用
目的: トークンとユーザー情報を含む成功したログインレスポンスをフォーマット
パラメータ:
result:Result<RouteHandlerPayload, Error>- ペイロードまたはエラーを含む結果context.data.accessToken: 前のハンドラーからのアクセストークンcontext.data.refreshToken: 前のハンドラーからのリフレッシュトークンcontext.data.identity: ユーザーアイデンティティ情報
戻り値: フォーマットされたログインレスポンスオブジェクト
ペイロード要件:
context.data.accessToken、refreshToken、identityは前のハンドラーから利用可能である必要があります
使用例:
import { handlers } from '@nodeblocks/backend-sdk';
const { loginTerminator } = handlers;
// Use in composition
const authPipeline = compose(loginWithCredentials, createAccessToken, createRefreshToken, setResponseCookie, loginTerminator);
logoutTerminator
適切なステータスコードでログアウトプロセスを終了します。
このハンドラーは非推奨です。
代替: Authentication Blocksを使用
目的: 204ステータスで成功したログアウトレスポンスをフォーマット
パラメータ:
result:Result<RouteHandlerPayload, Error>- ペイロードまたはエラーを含む結果
戻り値: 204 statusCodeを含むレスポンスオブジェクト
ペイロード要件:
- 特定の要件なし - このターミネーターは常に204を返します
使用例:
import { handlers } from '@nodeblocks/backend-sdk';
const { logoutTerminator } = handlers;
// Use in composition
const authPipeline = compose(logout, logoutTerminator);
registerTerminator
適切なレスポンスフォーマットで登録プロセスを終了します。
このハンドラーは非推奨です。
代替: Authentication Blocksを使用
目的: ユーザー情報を含む成功した登録レスポンスをフォーマット
パラメータ:
result:Result<RouteHandlerPayload, Error>- ペイロードまたはエラーを含む結果context.data.email: 前のハンドラーからのユーザーメールcontext.data.id: 前のハンドラーからのユーザーID
戻り値: フォーマットされた登録レスポンスオブジェクト
ペイロード要件:
context.data.emailとidは前のハンドラーから利用可能である必要があります
使用例:
import { handlers } from '@nodeblocks/backend-sdk';
const { registerTerminator } = handlers;
// Use in composition
const authPipeline = compose(registerCredentials, registerTerminator);
confirmEmailTerminator
適切なステータスコードでメール確認プロセスを終了します。
目的: 204ステータスで成功したメール確認レスポンスをフォーマット
パラメータ:
result:Result<RouteHandlerPayload, Error>- ペイロードまたはエラーを含む結果context.data.confirmEmail: 前のハンドラーからの確認結果
戻り値: 204 statusCodeを含むレスポンスオブジェクト
ペイロード要件:
context.data.confirmEmailは前のハンドラーから利用可能である必要があります
使用例:
import { handlers } from '@nodeblocks/backend-sdk';
const { confirmEmailTerminator } = handlers;
// Use in composition
const authPipeline = compose(checkToken, confirmEmail, confirmEmailTerminator);
sendVerificationEmailTerminator
適切なステータスコードでメール送信プロセスを終了します。
このハンドラーは非推奨です。
代替: Authentication Blocksを使用
目的: 204ステータスで成功したメール送信レスポンスをフォーマット
パラメータ:
result:Result<RouteHandlerPayload, Error>- ペイロードまたはエラーを含む結果context.data.sendVerificationEmail: 前のハンドラーからのメール送信結果context.data.token: 前のハンドラーから生成されたトークン
戻り値: 204 statusCodeを含むレスポンスオブジェクト
ペイロード要件:
context.data.sendVerificationEmailとtokenは前のハンドラーから利用可能である必要があります
使用例:
import { handlers } from '@nodeblocks/backend-sdk';
const { sendVerificationEmailTerminator } = handlers;
// Use in composition
const authPipeline = compose(sendVerificationEmail, sendVerificationEmailTerminator);