CakePHP4のログイン認証はAuthentication Component 2.xに変わったのですが、以前と勝手が違うので戸惑うことが多いです。
手動でログインする方法が分からなかったので調べてみました。
バージョン情報
CakePHP4.2
Authentication Component 2.x
古いAuthComponentでのやり方
以前のバージョンではAuthComponentにsetUserというメソッドがあり、ここにユーザー情報をぶち込めばログイン状態にすることができました。
$this->Auth->setUser($user);
Authentication Component 2.x
新しい方は名前が変わりました。同じようにユーザー情報をぶち込めばOKです。
$this->Authentication->setIdentity($user);
最初やり方がわからなくて、とりあえずセッションにユーザー情報が入っていればログイン扱いになったのでその方法でいったん実装したのですが、改めて確認したらちゃんとありました。
CakeBookに書いてあったのですが、”認証者の確認”とかいう意味不明なタイトルなので見つけにくかったですね。
認証コンポーネントから移行 - 2.x
ログイン認証自体設定方法はこちらの記事を参考にしてください。