前提・実現したいこと
CakePHP4を勉強しており、Authenticationを使用して認証システムを作成したいのですが、
認証項目の増やし方がわからない状況です。
通常のログインIDとパスワードのような項目に追加でメールアドレスのように3つで認証を
行う場合の記述を教えていただけたらと思います。
ソースコード
現在はCookbookの内容をほとんどそのまま記述しております。
Application.php
PHP
1 public function getAuthenticationService(ServerRequestInterface $request): AuthenticationServiceInterface 2 { 3 $authenticationService = new AuthenticationService([ 4 'unauthenticatedRedirect' => '/admin/login', 5 'queryParam' => 'redirect', 6 ]); 7 8 // 識別子をロードして、電子メールとパスワードのフィールドを確認します 9 $authenticationService->loadIdentifier('Authentication.Password', [ 10 'fields' => [ 11 'username' => 'loginid', 12 'password' => 'password', 13 ], 14 ]); 15 16 // 認証子をロードするには、最初にセッションを実行する必要があります 17 $authenticationService->loadAuthenticator('Authentication.Session'); 18 // メールとパスワードを選択するためのフォームデータチェックの設定 19 $authenticationService->loadAuthenticator('Authentication.Form', [ 20 'fields' => [ 21 'username' => 'loginid', 22 'password' => 'password', 23 ], 24 'loginUrl' => '/admin/login', 25 ]); 26 27 return $authenticationService; 28 }
LoginController.php
PHP
1 2 public function index() 3 { 4 $this->request->allowMethod(['get', 'post']); 5 $result = $this->Authentication->getResult(); 6 // POSTやGETに関係なく、ユーザーがログインしていればリダイレクトします 7 if ($result->isValid()) { 8 // ログイン成功後に /users にリダイレクトします 9 $redirect = $this->request->getQuery('redirect', [ 10 'controller' => 'Users', 11 'action' => 'index', 12 ]); 13 14 return $this->redirect($redirect); 15 } 16 // ユーザーの送信と認証に失敗した場合にエラーを表示します 17 if ($this->request->is('post') && !$result->isValid()) { 18 $this->Flash->error(__('Invalid email or password')); 19 } 20 }
試したこと
https://norm-nois.com/blog/archives/3769
こちらのサイトなども参考にしてみたのですが、そもそもCakePHP4から追加のプラグインなのか、
ヒット数も少なく中々思うような結果を見つけることが出来ません。
ご存じの方がいらっしゃいましたらよろしくお願いいたします。
あなたの回答
tips
プレビュー