概要<必須>
ログイン機能は、らくらく相続図アプリのセキュリティを担保し、登録ユーザーに安全なアクセスを提供する。ユーザー認証、セッション管理、セキュリティ対策を含む。
Logic説明<必須>
ユーザーはユーザー名とパスワードを入力してログインする。認証はバックエンドで行われ、成功時にユーザーセッションを開始し、失敗時にはエラーメッセージを表示する。セッションは30分でタイムアウトし、セキュリティ対策としてSSL/TLS、パスワードのハッシュ化、不正アクセス検知が含まれる。
詳細機能一覧と説明<必須>
- Frontend側の機能
- 機能名:ログイン画面表示
- 機能説明:ユーザーがログイン情報を入力するための画面を提供。
- 論理名:LoginView
- メソッド名:renderLogin
- INPUT:なし
- OUTPUT:ログイン画面
- 機能名:ログインデータ送信
- 機能説明:入力されたログインデータをバックエンドへ送信。
- 論理名:LoginDataSubmission
- メソッド名:submitLoginData
- INPUT:ユーザー名、パスワード
- OUTPUT:バックエンドからのレスポンス
- Backend側の機能
- 機能名:ユーザー認証
- 機能説明:受け取ったログインデータを検証し、認証処理を行う。
- 論理名:UserAuthentication
- メソッド名:authenticateUser
- INPUT:ユーザー名、パスワード
- OUTPUT:認証結果
- 機能名:セッション管理
- 機能説明:認証成功後のユーザーセッションを開始し、管理する。
- 論理名:SessionManagement
- メソッド名:manageSession
- INPUT:ユーザーID
- OUTPUT:セッション情報
必要なAPI一覧と説明<必須>
- API Name:LoginAPI
- Overview Note:ユーザーのログイン情報を受け取り、認証を行う。
- Endpoint Name:/login
- Request Method:POST
- Request Parameter:username, password
- Response Parameter:authenticationStatus, sessionId(認証成功時)
必要なDBテーブルとカラム名定義<必須>
- Table Name:Users
- Overview Note:登録ユーザー情報を格納。
- Column List
- Name:UserID
- Data Type:INT
- Primary Key:YES
- Name:Username
- Data Type:VARCHAR
- Primary Key:NO
- Name:Password
- Data Type:VARCHAR
- Primary Key:NO
- Name:Email
- Data Type:VARCHAR
- Primary Key:NO
- Name:LastLogin
- Data Type:DATETIME
- Primary Key:NO
処理フロー
- ユーザーがログイン画面でユーザー名とパスワードを入力。
- Frontendは入力データをバックエンドのLoginAPIにPOSTリクエストで送信。
- Backendは受け取ったデータを検証し、ユーザー認証を実施。
- 認証成功の場合、ユーザーセッションを開始し、認証失敗の場合、エラーメッセージをフロントエンドに返す。
- フロントエンドはバックエンドからのレスポンスに基づき、適切な画面表示を行う。
フレームワーク・ライブラリの規約
- VueJs(Quasar):コンポーネントベースの開発、明確なデータバインディング。
- NestJS(Typescript):モジュラーな構成、明確なAPIエンドポイントの設定。