🔐 認証ブロック
認証ブロックは、Nodeblocksアプリケーションでユーザー認証と認可のための包括的な機能を提供します。これらのブロックは、OAuth、メール/パスワード、メール確認、多要素認証(MFA)、ワンタイムトークン、セッション管理を含む認証フローを処理します。
🎯 概要
認証ブロックは以下の目的で設計されています:
- 複数の認証方法のサポート(OAuth、メール/パスワード、ワンタイムトークン)
- メール確認と確認ワークフローの処理
- ユーザーセッションとセキュリティトークンの管理
- デバイスフィンガープリンティングによる安全な認証の提供
- 様々なバリデーションオプションによる柔軟な登録の有効化
- 多要素認証(MFA)のサポート - コード生成と確認を含む
📦 ブロックタイプ
🔍 スキーマ
認証データのバリデーション用JSON Schema定義:
- providerSchema: OAuthプロバイダー認証
- credentialsSchema: メール/パスワード認証
- identitySchema: 複数の方法による柔軟な認証
- loginWithCredentialsSchema: フィンガープリンティングを含むログインバリデーション
- resendMfaCodeSchema: MFAコード再送信バリデーション
- verifyMfaCodeSchema: MFAコード確認バリデーション
- registerCredentialsSchema: ユーザー登録バリデーション
- sendVerificationEmailSchema: メール確認リクエスト
- confirmEmailSchema: トークンによるメール確認
- changeEmailSchema: メール変更バリデーション
- checkTokenSchema: ターゲットコンテキストを含むトークンバリデーション
- confirmNewEmailSchema: 新しいメール確認バリデーション
- sendResetPasswordLinkEmailSchema: パスワードリセットメールバリデーション
- passwordSchema: パスワードフィールドバリデーション(長さ/パターン)
- changePasswordSchema: パスワード変更バリデーション
- completePasswordResetSchema: パスワードリセット完了バリデーション
- activateSchema: アカウント有効化バリデーション
- deactivateSchema: アカウント無効化バリデーション
- loginWithOnetimeTokenSchema: ワンタイムトークンログインバリデーション
- refreshTokenSchema: リフレッシュトークンバリデーション
- deleteRefreshTokensSchema: リフレッシュトークン削除バリデーション
⚙️ ハンドラー
認証操作のコアビジネスロジック:
- loginWithCredentials: 認証情報によるユーザー認証
- createAccessToken: アクセストークンの生成
- createRefreshToken: リフレッシュトークンの生成
- setResponseCookie: レスポンスに認証Cookieを設定
- logout: セッション終了とクリーンアップ
- registerCredentials: ユーザーアカウントの作成
- sendVerificationEmail: メール確認の送信
- confirmEmail: メール確認の処理
- buildCheckConfirmEmailTokenPayload: confirm-email用のチェックトークンペイロードの準備
- checkToken: トークンバリデーション処理
- refreshToken: 強化されたセキュリティでリフレッシュトークンを使用したアクセストークンの更新
- deleteToken: トークンの削除(admin)
- loginWithOnetimeToken: OTTによる認証
- generateOnetimeToken: OTTの生成(admin)
- restoreOnetimeToken: OTTの復元(admin)
- invalidateOnetimeToken: OTTの無効化(admin)
- loginTerminator: ログイン応答のフォーマット
- logoutTerminator: ログアウト応答のフォーマット
- registerTerminator: 登録応答のフォーマット
- confirmEmailTerminator: メール確認応答のフォーマット
- sendVerificationEmailTerminator: 確認メール応答のフォーマット
🛣️ ルート
認証操作のHTTPエンドポイント定義:
- loginWithCredentialsRoute: POST
/auth/login(認証ハンドラー付き) - resendMfaCodeRoute: POST
/auth/mfa/resend(MFAコード再生成付き) - verifyMfaCodeRoute: POST
/auth/mfa/verify(MFAコード確認付き) - logoutRoute: POST
/auth/logout(セッション終了付き) - refreshTokenRoute: POST
/auth/token/refresh(アクセストークン更新付き) - registerCredentialsRoute: POST
/auth/register(アカウント作成付き) - sendVerificationEmailRoute: POST
/auth/:identityId/send-verification-email(メール送信付き) - confirmEmailRoute: POST
/auth/confirm-email(トークン処理付き) - changeEmailRoute: PATCH
/auth/:identityId/change-email(メール更新処理付き) - checkTokenRoute: POST
/auth/token/check(トークンバリデーションハンドラー付き) - deleteRefreshTokensRoute: DELETE
/auth/:identityId/refresh-tokens(認証とアクセスバリデーション付き) - loginWithOnetimeTokenRoute: POST
/auth/ott/login(OTT認証付き) - generateOnetimeTokenRoute: POST
/auth/ott/generate(OTT生成付き、admin) - restoreOnetimeTokenRoute: POST
/auth/ott/restore(OTT復元付き、admin) - invalidateOnetimeTokenRoute: POST
/auth/ott/invalidate(OTT無効化付き、admin) - confirmNewEmailRoute: POST
/auth/confirm-new-email(新しいメール確認付き) - sendResetPasswordLinkEmailRoute: POST
/auth/send-reset-password-link-email(パスワードリセットメール送信付き) - changePasswordRoute: PATCH
/auth/:identityId/change-password(パスワード更新処理付き) - activateRoute: POST
/auth/activate(アカウント有効化処理付き) - deactivateRoute: POST
/auth/deactivate(アカウント無効化処理付き) - completePasswordResetRoute: POST
/auth/reset-password(パスワード更新付き)
🚀 機能
schemas、routes、handlersを組み合わせた完全な認証管理機能:
- loginWithCredentialsFeature: バリデーション済み認証情報と安全なログアウトを含むユーザー認証
- verifyMfaCodeFeature: 多要素認証コード確認ワークフロー
- resendMfaCodeFeature: 新しい確認コードが必要なユーザー向けのMFAコード再生成
- loginWithOnetimeTokenFeature: ワンタイムトークンを使用したパスワードレス認証
- registerCredentialsFeature: 認証情報バリデーションとアカウント作成を含むユーザー登録
- emailVerificationFeature: デバイスセキュリティを含むメール確認リクエスト処理
- confirmEmailFeature: メール確認トークンバリデーションとアカウント確認
- changeEmailFeature: バリデーションを含むメール変更の開始
- checkTokenFeature: ターゲットコンテキストを含むトークンバリデーション
- confirmNewEmailFeature: メール変更後の新しいメール確認
- sendResetPasswordLinkEmailFeature: パスワードリセットメールの生成と送信
- changePasswordFeature: バリデーションとハッシュ化を含むパスワード変更
- activateFeature: アカウント有効化ワークフロー
- deactivateFeature: アカウント無効化ワークフロー
- completePasswordResetFeature: パスワードリセット完了ワークフロー
- refreshTokenFeature: アクセストークンを更新するためのスキーマバリデーションとルーティングを含むトークン更新機能
- deleteRefreshTokensFeature: アイデンティティリフレッシュトークンを削除するためのスキーマバリデーションとルーティングを含むリフレッシュトークン削除機能
✅ バリデーター
認証操作のバリデーション関数:
- isAuthenticated: 設定された認証器を使用して認証をバリデーション
- verifyAuthentication: 提供された認証器関数を使用して認証をバリデーション(非推奨)
🔧 ブロック
認証操作の純粋なビジネスロジック関数:
- Identity Management: ユーザーバリデーションとメール操作
- Token Management: 安全なトークンライフサイクル管理
- Email Authentication: 確認と通信機能
- Security Validation: フィンガープリント追跡とリクエストバリデーション
- Multi-Factor Authentication (MFA): MFAコード生成、確認、エラー処理
- MFA Error Classes: MFA操作のための専門的なエラー処理
- MFA Constants: MFA機能の設定定数