Email・パスワード入力からログイン成功まで ― 3層アーキテクチャ―

に公開

3層アーキテクチャ

  • ユーザーと直接やりとりをするプレゼンテーション層
  • 入力を受け取り、必要な処理を実行し、結果を返すアプリケーション層
  • データの保存・取得を担当するデータ層
  • ユーザー
  • プレゼンテーション層(UI)
    • 役割: ユーザー入力を受け取り、アプリケーション層に渡す
    • 「見せる」「受け取る」というユーザーとのやり取りを担当。
  • アプリケーション層(ロジック)
    • 役割: ビジネスロジック(認証処理)を実行し、結果を返す
    • 「処理・判定・制御」を担当。
  • データ層(DB)
    • 役割: ユーザー情報を保存・取得する

ログイン成功時の流れ

  1. ユーザーが入力フォームにEmail、PWを入力 (プレゼンテーション層)
  2. 入力フォームから受け取った情報があるか、データ層に問い合わせる。(アプリケーション層)
  3. アプリケーションからの問い合わせがあった情報を検索し、検索結果をアプリケーションに返す。(データ層)
  4. 受け取ったデータを元に照合し、一致していたら、セッションを発行し、ログイン成功の結果をプレゼンテーション層に渡す。(アプリケーション層)
  5. ログイン成功後の画面(例:マイページ)を返す(プレゼンテーション層)

ログイン失敗時の流れ

  1. ユーザーが入力フォームにEmail、PWを入力 (プレゼンテーション層)
  2. 入力フォームから受け取った情報があるか、データ層に問い合わせる。(アプリケーション層)
  3. アプリケーションからの問い合わせがあった情報を検索し、検索結果をアプリケーションに返す。(データ層)
  4. 受け取ったデータを元に照合し、一致していなかったので、ログイン失敗の結果をプレゼンテーション層に渡す。(アプリケーション層)
  5. ログイン失敗(例:エラーメッセージを返して再入力させる)の画面を返す(プレゼンテーション層)

※プロトコル:コンピューター内またはコンピューター間でデータを交換する方法を定義したルールの体系です。
※セッション:通信の開始から終了までの一連の処理

参考文献

https://qiita.com/fujishiro380/items/d29bc37c9faa4fc818c2
https://qiita.com/os1ma/items/7a229585ebdd8b7d86c2

Discussion