CakePHP3でログイン認証を構築

CakePHP3でログイン認証を構築

細かいところは公式マニュアルをチェック
https://book.cakephp.org/3.0/ja/controllers/components/authentication.html

AppController.php – コントローラー全体の認証設定を行う
LoginController.php – ログインフォーム、ログイン処理など
TUsersController.php – ユーザー表示、登録、編集など

■認証設定(AppController.php)

initializeに認証処理を追記します。

loginAction – ログイン処理を行うコントローラーとアクションを指定
loginRedirect – ログイン後に移動するコントローラーとアクションを指定
logoutRedirect – ログアウト後に移動するコントローラーとアクションを指定
authenticate – 認証の詳細設定
 Form:ユーザーID、パスワードを入力するフォームを作成して認証処理をさせるタイプ。他にはBasicやDigestがあります。
  userModel:認証に使用するモデルを指定(デフォルトはUsers)
   fields:認証に使用するカラムを指定(デフォルトはusernameとpassword)

■ログインフォーム(index.ctp)、認証処理(LoginController.php)

LoginController.php

index.ctp

■ユーザーの表示、追加、編集など
コントローラーに継承用の一文を追記します。
これがないとログイン後でもログインフォームに飛ばされちゃいます。

TUsersController.php

ユーザ作成、編集時にパスワードをハッシュ化させる。

Model/Entity/TUser.php

こうやって書くと単純だけど結構苦戦しました。
AppControllerに書きましたけど、コントローラー単位でやる方法は分かりません(w