🔐 認証フィーチャーブロック
認証フィーチャーブロックは、Nodeblocksアプリケーションにおけるユーザー認証操作のための完全な事前構成済み機能を提供します。これらのフィーチャーは、ログイン、登録、メール確認、セッション管理のための即座に使用可能なAPIエンドポイントを作成するために、スキーマ、ルート、ハンドラーを組み合わせます。
🎯 概要
認証フィーチャーブロックは以下を目的として設計されています:
- ユーザーログインと登録のための完全な認証ワークフローの提供
- 検証済み認証操作のためのスキーマとルートの組み合わせ
- セキュリティ対策とトークン管理の自動実装
- メール確認とアカウント確認フローのサポート
- ログアウト操作とセッション管理の円滑な処理
📋 フィーチャー構造
各認証フィーチャーは一貫したコンポジションパターンに従います:
- スキーマ: 認証入力データとパラメータの検証
- ルート: 認証ハンドラー付きHTTPエンドポイントの提供
- コンポジション:
compose
関数を使用したスキーマとルートの結合
🔧 利用可能な認証フィーチャー
loginWithCredentialsFeature
認証情報検証による完全なログインとログアウト機能を提供します。
目的: 検証済み認証情報による ユーザー認証と安全なログアウトを処理
コンポジション:
- スキーマ:
loginWithCredentialsSchema
- ログイン認証情報の検証 - ルート:
loginWithCredentialsRoute
- POST/auth/login
認証ハンドラー付き - ルート:
logoutRoute
- POST/auth/logout
セッション終了付き
使用方法:
import { features } from '@nodeblocks/backend-sdk';
// 直接使用(ハンドラーにdataStoresが必要)
app.use('/api/auth', defService(features.loginWithCredentialsFeature));
// データベース設定付き
app.use('/api/auth', defService(partial(features.loginWithCredentialsFeature, [{ dataStores: db }])));
APIエンドポイント:
POST /api/auth/login
- ユーザー認証POST /api/auth/logout
- セッション終了
registerCredentialsFeature
認証情報検証とアカウント作成による ユーザー登録を処理します。
目的: データ検証による新規ユーザー登録を処理
コンポジション:
- スキーマ:
registerCredentialsSchema
- 登録データの検証 - ルート:
registerCredentialsRoute
- POST/auth/register
アカウント作成付き
使用方法:
import { features } from '@nodeblocks/backend-sdk';
// 直接使用(ハンドラーにdataStoresが必要)
app.use('/api/auth', defService(features.registerCredentialsFeature));
// データベース設定付き
app.use('/api/auth', defService(partial(features.registerCredentialsFeature, [{ dataStores: db }])));
APIエンドポイント: POST /api/auth/register
emailVerificationFeature
アカウント確認のためのメール確認をユーザーに送信します。
目的: メール確認リクエスト処理を処理
コンポジション:
- スキーマ:
sendVerificationEmailSchema
- デバイスセキュリティのためのオプションのフィンガープリント検証 - ルート:
sendVerificationEmailRoute
- POST/auth/:userId/send-verification-email
メール送信付き
使用方法:
import { features } from '@nodeblocks/backend-sdk';
// 直接使用(ハンドラーにdataStoresが必要)
app.use('/api', defService(features.emailVerificationFeature));
// データベース設定付き
app.use('/api', defService(partial(features.emailVerificationFeature, [{ dataStores: db }])));
APIエンドポイント: POST /api/auth/:userId/send-verification-email
confirmEmailFeature
ユーザーアカウント確認のためのメール確認トークンを処理します。
目的: メール確認トークンを検証し、ユーザーアカウントを確認
コンポジション:
- スキーマ:
confirmEmailSchema
- メールからの確認トークン検証 - ルート:
confirmEmailRoute
- POST/auth/confirm-email
トークン処理付き
使用方法:
import { features } from '@nodeblocks/backend-sdk';
// 直接使用(ハンドラーにdataStoresが必要)
app.use('/api', defService(features.confirmEmailFeature));
// データベース設定付き
app.use('/api', defService(partial(features.confirmEmailFeature, [{ dataStores: db }])));
APIエンドポイント: POST /api/auth/confirm-email