Jetstreamを利用すれば、二要素認証が簡単に設定できる。
管理サイトを追加するためのマルチログインも比較的に設定できる。
しかし、追加した管理サイトでは二要素認証が設定できない。
ユーザーと同じようにすれば良いのでは、とルーティングを追いかけてみた。
まず、認証まわりのViewは、\resources\views\authにまとめられている。
これは、app\Providers\JetstreamServiceProvider.phpで、
Fortify::viewPrefix('auth.');
として指定されている。
authフォルダーをコピーして、adminauthフォルダーとして、
if(strpos($_SERVER['REQUEST_URI'],'admin')){
Fortify::viewPrefix('adminauth.');
}else{
Fortify::viewPrefix('auth.');
}
とすれば、admin/loginでアクセスすれば、adminauthフォルダーの内容で動作する。
ルーティングは、vendor/laravel/fortify/routes/routes.phpを操作して、admin/がついたものもルーティングできるように変更可能だった。
しかしながら、肝心のデータを保存するテーブルのカスタマイズができない。
USERテーブルは特別なテーブルなので、モデルの名前として指定されていない。
これでは変更しようがない。
なので、こういうアプローチではマルチログインの実現は不可能。
かなり時間を使ったが、あきらめることに。
フロントでは、2要素認証ができるのだから、管理者サイトのログインも、会員登録をしていないとできないことにすれば、3重チェックになる。
このようにベトバンに提案した。