{"id":11802,"date":"2023-07-22T07:00:11","date_gmt":"2023-07-21T22:00:11","guid":{"rendered":"https:\/\/blog.capilano-fw.com\/?p=11802"},"modified":"2023-07-13T03:42:45","modified_gmt":"2023-07-12T18:42:45","slug":"laravel-breeze-%e3%81%a7multi-auth-%e3%81%97%e3%81%aa%e3%81%8c%e3%82%89%e3%83%ad%e3%82%b0%e3%82%a4%e3%83%b3%e3%83%bb%e7%99%bb%e9%8c%b2%e3%83%bb%e3%83%91%e3%82%b9%e3%83%af%e3%83%bc%e3%83%89%e5%86%8d","status":"publish","type":"post","link":"https:\/\/blog.capilano-fw.com\/?p=11802","title":{"rendered":"Laravel Breeze\uff1a Multi Auth \u3057\u306a\u304c\u3089\u30ed\u30b0\u30a4\u30f3\u30fb\u767b\u9332\u30fb\u30d1\u30b9\u30ef\u30fc\u30c9\u518d\u767a\u884c\u30fbEmail Verification \u306b\u5bfe\u5fdc\u3055\u305b\u308b"},"content":{"rendered":"<p>\u3055\u3066\u3055\u3066\u3001<code>Laravel<\/code>\u958b\u767a\u3092\u3057\u305f\u3053\u3068\u304c\u3042\u308b\u4eba\u306a\u3089\u8ab0\u3067\u3082\u805e\u3044\u305f\u3053\u3068\u304c\u3042\u308b\u30d1\u30c3\u30b1\u30fc\u30b8\u304c\u300c<strong>Laravel Breeze<\/strong>\u300d\u3058\u3083\u306a\u3044\u3067\u3057\u3087\u3046\u304b\u3002<\/p>\n<p>\u3053\u308c\u306f\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u6a5f\u80fd\u3092\u4e00\u624b\u306b\u5f15\u304d\u53d7\u3051\u3066\u304f\u308c\u308b\u30b9\u30b0\u30ec\u30e2\u30ce\u3067\u3001\u79c1\u3082\u3088\u304f\u304a\u4e16\u8a71\u306b\u306a\u3063\u3066\u3044\u307e\u3059\u3002<\/p>\n<ul>\n<li>\u30ed\u30b0\u30a4\u30f3<\/li>\n<li>\u30e6\u30fc\u30b6\u30fc\u767b\u9332<\/li>\n<li>\u30d1\u30b9\u30ef\u30fc\u30c9\u518d\u767a\u884c<\/li>\n<li>\u672c\u767b\u9332\u7528\u306eURL\u3092\u30e1\u30fc\u30eb\u9001\u4fe1<\/li>\n<\/ul>\n<p>\u306a\u3069\u306a\u3069\u3002<\/p>\n<p>\u3057\u304b\u3057\u3001\u5b9f\u306f\u3053\u306e<code>Laravel Breeze<\/code>\u306f<code>user<\/code>\u3068\u3044\u3046\u540d\u524d\u306e\u30ed\u30b0\u30a4\u30f3\u30bf\u30a4\u30d7\u3060\u3051\u3067\u306a\u304f\u3001\u62e1\u5f35\u3059\u308c\u3070\u5225\u306e\u3082\u306e\u3082\u5229\u7528\u3067\u304d\u308b\u306e\u3092\u3054\u5b58\u77e5\u3067\u3057\u3087\u3046\u304b\u3002<\/p>\n<p>\u4f8b\u3048\u3070\u30fb\u30fb\u30fb\u30fb\u30fb\u30fb<\/p>\n<ul>\n<li>student<\/li>\n<li>teacher<\/li>\n<li>parent<\/li>\n<\/ul>\n<p>\u203b \u3053\u306e\u6a5f\u80fd\u306f<code>Multi Auth<\/code>\uff08\u307e\u308b\u3061\u30fb\u304a\u30fc\u3059\uff09\u3068\u547c\u3070\u308c\u308b\u6a5f\u80fd\u3067\u3059\u3002<\/p>\n<p>\u305d\u3057\u3066\u3001<code>Multi Auth<\/code>\u3092\u5229\u7528\u3059\u308b\u3053\u3068\u3067<code>DB<\/code>\u30c6\u30fc\u30d6\u30eb\u3092\u5206\u3051\u308b\u3053\u3068\u304c\u3067\u304d\u3001<span style=\"font-size: 1rem;\">\u5404\u30e6\u30fc\u30b6\u30fc\u306e\u767b\u9332\u5185\u5bb9\u304c\u9055\u3046\u5834\u5408\u306a\u3069\u306b\u3068\u3066\u3082\u4fbf\u5229\u3067\u3059\u3002<\/span><\/p>\n<p>\u3057\u304b\u3057\u2757<\/p>\n<p>\u5b9f\u306f\u3001\u30ed\u30b0\u30a4\u30f3\u3060\u3051\u306a\u3089\u305d\u308c\u307b\u3069\u96e3\u3057\u304f\u306f\u306a\u3044\u306e\u3067\u3059\u304c\u3001\u5168\u3066\u306e\u6a5f\u80fd\u3092<code>Multi Auth<\/code>\u5316\u3059\u308b\u3068\u306a\u304b\u306a\u304b\u3084\u3063\u304b\u3044\u3060\u3063\u305f\u308a\u3057\u307e\u3059\u3002<\/p>\n<p>\u305d\u3053\u3067\u2757<\/p>\n<p>\u4eca\u56de\u306f\u4eca\u5f8c\u306e\u81ea\u5206\u306e\u305f\u3081\u306e\u5099\u5fd8\u9332\u3068\u3057\u3066\u3082<code>Laravel Breeze<\/code>\u3067<code>Multi Auth<\/code>\u3092\u4f7f\u3046\u65b9\u6cd5\u3092\u8a18\u4e8b\u3068\u3057\u3066\u307e\u3068\u3081\u307e\u3057\u305f\u3002<\/p>\n<p>\u305c\u3072\u4f55\u304b\u306e\u304a\u5f79\u306b\u7acb\u3066\u3070\u5b09\u3057\u3044\u3067\u3059\u3002\ud83d\ude04\u2728<\/p>\n<p>\u203b \u3061\u306a\u307f\u306b\u4eca\u56de\u306e\u8a18\u4e8b\u306f\u30db\u30f3\u30c8\u306b\u305f\u304f\u3055\u3093\u306e\u7b87\u6240\u3067\u4f5c\u6210\uff06\u5909\u66f4\u304c\u5fc5\u8981\u3067\u79c1\u81ea\u8eab\u30b3\u30f3\u30ac\u30e9\u304c\u3063\u3066\u3057\u307e\u3044\u307e\u3057\u305f\u3002\u3002\u3082\u3057\u3069\u3053\u304b\u629c\u3051\u3066\u3044\u308b\u90e8\u5206\u304c\u3042\u3063\u305f\u3089\u305c\u3072\u6559\u3048\u3066\u304f\u3060\u3055\u3044\u3002\ud83d\ude4f\u2728<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-10758 aligncenter\" src=\"https:\/\/blog.capilano-fw.com\/wp-content\/uploads\/2022\/06\/no_21.png\" alt=\"\" width=\"370\" height=\"320\" srcset=\"https:\/\/blog.capilano-fw.com\/wp-content\/uploads\/2022\/06\/no_21.png 370w, https:\/\/blog.capilano-fw.com\/wp-content\/uploads\/2022\/06\/no_21-300x259.png 300w\" sizes=\"auto, (max-width: 370px) 100vw, 370px\" \/>\u300c\u3061\u3087\u3063\u3068\u8a18\u4e8b\u304c\u9577\u304f\u306a\u308b\u304b\u306a\u2026<br \/>\n\u304c\u60f3\u5b9a\u306e\uff13\u500d\u3050\u3089\u3044\u306b\u306a\u3063\u3066\u3057\u307e\u3044\u307e\u3057\u305f\uff08\u7b11\uff09\u300d<\/p>\n<p><strong>\u958b\u767a\u74b0\u5883\uff1a<\/strong> Laravel 10.x\uff08\u4eca\u56de\u306f\u30d5\u30ed\u30f3\u30c8\u30a8\u30f3\u30c9\u306f\u4f7f\u7528\u305b\u305a\u3001<code>Blade<\/code>\u3092\u4f7f\u3063\u3066\u307e\u3059\uff09<\/p>\n<h1>\u3084\u308a\u305f\u3044\u3053\u3068<\/h1>\n<p>\u4eca\u56de\u306f\u5b66\u751f\u3055\u3093\u305f\u3061\u304c\u30ed\u30b0\u30a4\u30f3\u3059\u308b\u300c<strong>student<\/strong>\u300d\u3068\u3044\u3046\u30ed\u30b0\u30a4\u30f3\u30bf\u30a4\u30d7\uff08<code>guard<\/code>\uff09\u3092\u4f5c\u3063\u3066\u307f\u307e\u3059\u3002<\/p>\n<p>\u3064\u307e\u308a\u3001\u30e2\u30c7\u30eb\u306f<code>Student.php<\/code>\u306b\u306a\u308a\u307e\u3059\u3057\u3001URL\u3082<code>\/student<\/code>\u3067\u59cb\u307e\u308a\u307e\u3059\u3002<\/p>\n<p>\u307e\u305f\u3001\u4eca\u56de\u306f\u300c<strong>student<\/strong>\u300d\u3060\u3051\u3067\u3059\u304c\u3001\u3082\u3057\u300c<strong>teacher<\/strong>\u300d\u3084\u300c<strong>seller<\/strong>\u300d\u306a\u3069\u305d\u306e\u4ed6\u306e\u30bf\u30a4\u30d7\u3092\u8ffd\u52a0\u3059\u308b\u5834\u5408\u306f\u540c\u3058\u4f5c\u696d\u3092\u3059\u308c\u3070OK\u3067\u3059\u3002<\/p>\n<p>\u305f\u3060\u3057\u3001\u4eca\u56de\u306f\u30ed\u30b0\u30a4\u30f3\u5f8c\u306e\u90e8\u5206\u306f\u7701\u7565\u3057\u3066\u3044\u307e\u3059\u3002<br \/>\n\u3042\u307e\u308a\u306b\u3082\u9577\u3044\u8a18\u4e8b\u306b\u306a\u308a\u3059\u304e\u305f\u306e\u3067\u2026\ud83d\udca6<\/p>\n<p>\u203b \u306a\u304a\u3001\u5c11\u3057\u60a9\u307f\u307e\u3057\u305f\u304c\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u3084\u30e2\u30c7\u30eb\u306e\u5171\u901a\u5316\u306f\u3057\u306a\u3044\u3053\u3068\u306b\u3057\u307e\u3057\u305f\u3002\u3068\u3044\u3046\u306e\u3082\u3001\u30ed\u30b0\u30a4\u30f3\u3059\u308b\u30e6\u30fc\u30b6\u30fc\u30bf\u30a4\u30d7\u306b\u3088\u3063\u3066\u4f8b\u5916\u304c\u767a\u751f\u3059\u308b\u3053\u3068\u304c\u60f3\u5b9a\u3055\u308c\u308b\u304b\u3089\u3067\u3059\u3002\uff08\u3082\u3057\u5171\u901a\u5316\u3057\u305f\u3044\u5834\u5408\u306f<code>Base******Controller<\/code>\u306a\u3069\u3092\u3064\u304f\u308a\u3001\u305d\u308c\u3092\u7d99\u627f\u3057\u3066\u305d\u308c\u305e\u308c\u306e\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u3092\u3064\u304f\u308b\u3068\u3044\u3044\u3067\u3057\u3087\u3046\uff09<\/p>\n<p>\u3067\u306f\u3001\u697d\u3057\u3093\u3067\u3084\u3063\u3066\u3044\u304d\u307e\u3057\u3087\u3046\u2757<\/p>\n<h1>Laravel Breeze \u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b<\/h1>\n<p>\u307e\u305a\u306f\u30ed\u30b0\u30a4\u30f3\u6a5f\u80fd\u304c<code>Laravel<\/code>\u3067\u4f7f\u3048\u306a\u3044\u3068\u59cb\u307e\u308a\u307e\u305b\u3093\u306e\u3067\u3001<code>Laravel Breeze<\/code>\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u307e\u3059\u3002<\/p>\n<p>\u4ee5\u4e0b\u306e\u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<pre><strong>composer require laravel\/breeze --dev\r\n<\/strong><\/pre>\n<p>\u3059\u308b\u3068\u3001\u30d1\u30c3\u30b1\u30fc\u30b8\u304c\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u308b\u306e\u3067\u3001\u7d9a\u3051\u3066\u4ee5\u4e0b\u306e\u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3057\u307e\u3059\u3002<\/p>\n<pre><strong>php artisan breeze:install blade\r\nphp artisan migrate\r\n<\/strong><\/pre>\n<p>\u203b \u3061\u306a\u307f\u306b\u3001\u4eca\u56de\u306f<code>Vue<\/code>\u306a\u3069\u306e\u30d5\u30ed\u30f3\u30c8\u30a8\u30f3\u30c9\u306f\u4f7f\u308f\u305a<code>Blade<\/code>\u306e\u307f\u3067\u5b9f\u88c5\u3057\u307e\u3059\u304c\u3001\u57fa\u672c\u7684\u306b\u306f\u540c\u3058\u3067\u3059\u3002\uff08\u30d3\u30e5\u30fc\u3068\u304b\u306f\u5909\u66f4\u3057\u3066\u304f\u3060\u3055\u3044\uff09<\/p>\n<p>\u3053\u308c\u3067\u3001<code>DB<\/code>\u306b\u30c6\u30fc\u30d6\u30eb\u304c\u4f5c\u6210\u3055\u308c\u30ed\u30b0\u30a4\u30f3\u6a5f\u80fd\u304c\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u307e\u3057\u305f\u3002<\/p>\n<h1>\u30d8\u30eb\u30d1\u30fc\u95a2\u6570\u3092\u3064\u304f\u308b<\/h1>\n<p>\u3067\u306f\u3001\u3053\u3053\u304b\u3089\u304c<code>Multi Auth<\/code>\u306e\u4f5c\u696d\u306b\u306f\u3044\u308a\u307e\u3059\u304c\u3001\u307e\u305a\u306f\u3069\u3053\u304b\u3089\u3067\u3082\u300c<strong>\u4eca\u3069\u306e\u30ed\u30b0\u30a4\u30f3\u30bf\u30a4\u30d7\u304b\u304c\u5206\u304b\u308b<\/strong>\u300d\u3088\u3046\u306b\u30d8\u30eb\u30d1\u30fc\u95a2\u6570\u3092\u4f5c\u3063\u3066\u304a\u304d\u307e\u3059\u3002<\/p>\n<p>\u3053\u306e\u95a2\u6570\u306f\u73fe\u5728\u306e<code>URL<\/code>\u304b\u3089\u30ad\u30fc\u30ef\u30fc\u30c9\u3092\u5207\u308a\u51fa\u3057\u3001\u4f8b\u3048\u3070\u300c<strong>student<\/strong>\u300d\u306a\u3069\u3092\u8fd4\u3057\u307e\u3059\u3002<\/p>\n<p><strong>app\/helpers.php<\/strong><\/p>\n<pre><strong>&lt;?php\r\n\r\nuse Illuminate\\Support\\Str;\r\n\r\nif (! function_exists('multi_auth_guard')) {\r\n\r\n    function multi_auth_guard(): ?string\r\n    {\r\n        $current_uri = request()-&gt;path();\r\n        $guard_types = ['student']; \/\/ \ud83d\udc48 \u8907\u6570\u3042\u308b\u5834\u5408\u306f\u3053\u3053\u306b\u8ffd\u52a0\u3059\u308b\r\n\r\n        foreach ($guard_types as $guard_type) {\r\n\r\n            if(Str::startsWith($current_uri, $guard_type)) {\r\n\r\n                return $guard_type;\r\n\r\n            }\r\n\r\n        }\r\n\r\n        return null;\r\n    }\r\n\r\n}\r\n<\/strong><\/pre>\n<p>\u203b \u306a\u304a\u3001\u3053\u306e\u4e2d\u306b\u3042\u308b<code>$guard_types<\/code>\u306b\u542b\u307e\u308c\u3066\u3044\u308b\u3082\u306e\u304c<code>Multi Auth<\/code>\u306e\u7a2e\u985e\uff08<code>guard<\/code>\uff09\u306b\u306a\u308a\u307e\u3059\u3002\u3082\u3057<code>student<\/code>\u306e\u4ed6\u306b\u3082\u5897\u3084\u3057\u305f\u3044\u5834\u5408\u306f\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u5909\u66f4\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<pre><strong>$guard_types = ['student', 'teacher', 'parent'];\r\n<\/strong><\/pre>\n<div>\u305d\u3057\u3066\u3001\u30d5\u30a1\u30a4\u30eb\u306f\u4f5c\u6210\u3057\u305f\u3060\u3051\u3067\u306f\u6709\u52b9\u306b\u306f\u306a\u308a\u307e\u305b\u3093\u306e\u3067\u3001<code>Laravel<\/code>\u3078\u767b\u9332\u3057\u307e\u3059\u3002<\/div>\n<p><strong>composer.json<\/strong><\/p>\n<pre>\"autoload\": {\r\n    <strong>\"files\": [\r\n        \"app\/helpers.php\"\r\n    ],<\/strong>\r\n    \"psr-4\": {\r\n        \"App\\\\\": \"app\/\",\r\n        \"Database\\\\Factories\\\\\": \"database\/factories\/\",\r\n        \"Database\\\\Seeders\\\\\": \"database\/seeders\/\"\r\n    }\r\n},\r\n<\/pre>\n<p>\u203b <code>files<\/code>\u306e\u90e8\u5206\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f\u3002<\/p>\n<p>\u3067\u306f\u3001\u767b\u9332\u3067\u304d\u305f\u3089\u4ee5\u4e0b\u306e\u30b3\u30de\u30f3\u30c9\u3067\u5b9f\u969b\u306b\u6709\u52b9\u306b\u3057\u307e\u3059\u3002<\/p>\n<pre><strong>composer dump-autoload\r\n<\/strong><\/pre>\n<p>\u3053\u308c\u3067\u3001<code>helpers.php<\/code>\u304c\u3069\u3053\u306b\u3042\u308b\u304b\u304c<code>Laravel<\/code>\u306b\u5206\u304b\u308b\u3088\u3046\u306b\u306a\u308a\u3001\u767b\u9332\u3055\u308c\u305f\u30d8\u30eb\u30d1\u30fc\u95a2\u6570\u304c\u3069\u3053\u304b\u3089\u3067\u3082\u5b9f\u884c\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<h1>View composer\u3092\u3064\u304f\u308b<\/h1>\n<p><code>View composer<\/code>\u3068\u306f\u3001\u30b7\u30f3\u30d7\u30eb\u306b\u8a00\u3046\u3068\u300c<strong>\u5148\u306b\u5024\u3092\u30bb\u30c3\u30c8\u3057\u3066\u304a\u3051\u3070\u3001\u3069\u306e\u30d3\u30e5\u30fc\u304b\u3089\u3067\u3082\u53d6\u308a\u51fa\u305b\u308b\u3088\ud83d\udc4d<\/strong>\u300d\u6a5f\u80fd\u306e\u3053\u3068\u3067\u3059\u3002<\/p>\n<p>\u3064\u307e\u308a\u3001\u3044\u3061\u3044\u3061\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u3057\u306a\u304f\u3066\u3082\u3088\u304f\u306a\u308b\u3068\u3044\u3046\u30b9\u30b0\u30ec\u30e2\u30ce\u3067\u3059\u3002<\/p>\n<pre><strong>return view('home', [\r\n    'test' =&gt; '\u30c6\u30b9\u30c8\u6587\u5b57\u5217', \/\/ \ud83d\udc48 \u6bce\u56de\u30bb\u30c3\u30c8\u3059\u308b\u306e\u304c\u30e1\u30f3\u30c9\u30a6\uff01\r\n]);\r\n<\/strong><\/pre>\n<p>\u305d\u3057\u3066\u3001\u30bb\u30c3\u30c8\u3059\u308b\u5024\u306f\u5148\u307b\u3069\u30d8\u30eb\u30d1\u30fc\u95a2\u6570\u306e\u4e2d\u8eab\uff08\u30ed\u30b0\u30a4\u30f3\u30bf\u30a4\u30d7\uff09\u3067\u3059\u3002<br \/>\n\u3067\u306f\u3001\u6b21\u306e\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<p><strong>app\/Providers\/ViewServiceProvider.php<\/strong><\/p>\n<pre><strong>&lt;?php\r\n\r\nnamespace App\\Providers;\r\n\r\nuse Illuminate\\Support\\Facades\\View;\r\nuse Illuminate\\Support\\ServiceProvider;\r\n\r\nclass ViewServiceProvider extends ServiceProvider\r\n{\r\n    \/**\r\n     * Register any application services.\r\n     *\r\n     * @return void\r\n     *\/\r\n    public function register()\r\n    {\r\n        \/\/\r\n    }\r\n\r\n    \/**\r\n     * Bootstrap any application services.\r\n     *\r\n     * @return void\r\n     *\/\r\n    public function boot()\r\n    {\r\n        View::composer('*', function ($view) {\r\n\r\n            $multi_auth_guard = multi_auth_guard();\r\n\r\n            if(! is_null($multi_auth_guard)) {\r\n\r\n                $view-&gt;with('multi_auth_guard', $multi_auth_guard);\r\n\r\n            }\r\n\r\n        });\r\n    }\r\n}<\/strong><\/pre>\n<p>\u305d\u3057\u3066\u3001\u3053\u306e\u30d5\u30a1\u30a4\u30eb\u3092<code>Laravel<\/code>\u5074\u3078\u767b\u9332\u3057\u3066\u304a\u304d\u307e\u3057\u3087\u3046\u3002<\/p>\n<p><strong>config\/app.php<\/strong><\/p>\n<pre>\/\/ \u7701\u7565\r\n\r\n\/*\r\n * Package Service Providers...\r\n *\/\r\n<strong>App\\Providers\\ViewServiceProvider::class, \/\/ \ud83d\udc48 \u3053\u3053\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f<\/strong>\r\n\r\n\/\/ \u7701\u7565\r\n<\/pre>\n<p>\u3053\u308c\u3067\u3001\u3069\u306e\u30d3\u30e5\u30fc\u304b\u3089\u3067\u3082<code>$multi_auth_guard<\/code>\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\u3002<\/p>\n<h1>guard\uff08\u30ed\u30b0\u30a4\u30f3\u30bf\u30a4\u30d7\uff09\u3092\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306b\u66f8\u304d\u8fbc\u3080<\/h1>\n<p>\u6b21\u306b\u3001\u3053\u308c\u3082\u6e96\u5099\u306e\u3088\u3046\u306a\u3082\u306e\u3067\u3059\u304c<code>Laravel<\/code>\u306b\u30ed\u30b0\u30a4\u30f3\u30bf\u30a4\u30d7\uff08<code>guard<\/code>\uff09\u3092\u30bb\u30c3\u30c8\u3057\u307e\u3059\u3002<\/p>\n<p>\u4eca\u56de\u306f<code>student<\/code>\u3060\u3051\u3067\u3059\u306e\u3067\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<p><strong>config\/auth.php<\/strong><\/p>\n<pre>\/\/ \u7701\u7565\r\n\r\n'guards' =&gt; [\r\n    'web' =&gt; [\r\n        'driver' =&gt; 'session',\r\n        'provider' =&gt; 'users',\r\n    ],\r\n<strong>    'student' =&gt; [ \/\/ \ud83d\udc48 \u3053\u3053\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f\r\n        'driver' =&gt; 'session',\r\n        'provider' =&gt; 'students',\r\n    ],<\/strong>\r\n],\r\n\r\n\/\/ \u7701\u7565\r\n\r\n'providers' =&gt; [\r\n    'users' =&gt; [\r\n        'driver' =&gt; 'eloquent',\r\n        'model' =&gt; App\\Models\\User::class,\r\n    ],\r\n<strong>    'students' =&gt; [ \/\/ \ud83d\udc48 \u3053\u3053\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f\r\n        'driver' =&gt; 'eloquent',\r\n        'model' =&gt; App\\Models\\Student::class,\r\n    ],<\/strong>\r\n],\r\n\r\n\/\/ \u7701\u7565\r\n\r\n'passwords' =&gt; [\r\n    'users' =&gt; [\r\n        'provider' =&gt; 'users',\r\n        'table' =&gt; 'password_reset_tokens',\r\n        'expire' =&gt; 60,\r\n        'throttle' =&gt; 60,\r\n    ],\r\n<strong>    'students' =&gt; [ \/\/ \ud83d\udc48 \u3053\u3053\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f\r\n        'provider' =&gt; 'students',\r\n        'table' =&gt; 'password_reset_tokens',\r\n        'expire' =&gt; 60,\r\n        'throttle' =&gt; 60,\r\n    ],<\/strong>\r\n],\r\n<\/pre>\n<p>\u203b <strong>\u26a0\u3054\u6ce8\u610f\uff1a<\/strong> \u3061\u306a\u307f\u306b\u3001\u66f8\u304d\u65b9\u306f\u81ea\u7531\u3067\u3059\u304c<code>Laravel<\/code>\u306e\u304a\u4f5c\u6cd5\u306b\u6cbf\u3063\u3066\u66f8\u3044\u3066\u3044\u307e\u3059\u306e\u3067\u3001\u300c<strong>student<\/strong>\u300d\u3068\u300c<strong>students<\/strong>\u300d\u306e\u5358\u6570\u5f62\uff0f\u8907\u6570\u5f62\u304c\u5165\u308a\u6df7\u3058\u3063\u3066\u3044\u307e\u3059\u3002\u304a\u6c17\u3092\u3064\u3051\u304f\u3060\u3055\u3044\u2757<\/p>\n<p>\u3053\u308c\u3067\u3001\u300c<strong>student<\/strong>\u300d\u3068\u3044\u3046\u30ed\u30b0\u30a4\u30f3\u30bf\u30a4\u30d7\u304c\u8ffd\u52a0\u3055\u308c\u307e\u3057\u305f\u3002<\/p>\n<h1>\u30e2\u30c7\u30eb\u30fb\u30de\u30a4\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\u30fbFactory\u30fbSeeder \u3092\u3064\u304f\u308b<\/h1>\n<p>\u3067\u306f\u3001\u6b21\u306bDB\u5468\u308a\uff08\u30e2\u30c7\u30eb\u30fb\u30de\u30a4\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\u30fbFactory\u30fbSeeder\uff09\u306e\u4f5c\u696d\u3092\u3057\u3066\u3044\u304d\u307e\u3059\u3002<\/p>\n<p>\u4ee5\u4e0b\u306e\u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<pre><strong>php artisan make:model Student -msf<\/strong><\/pre>\n<p>\u3059\u308b\u3068\u3001\uff14\u3064\u306e\u30d5\u30a1\u30a4\u30eb\u304c\u4f5c\u6210\u3055\u308c\u308b\u306e\u3067\u3001\u305d\u308c\u305e\u308c\u4e2d\u8eab\u3092\u5909\u66f4\u3057\u307e\u3059\u3002<\/p>\n<h2>\u30e2\u30c7\u30eb<\/h2>\n<p><strong>app\/Models\/Student.php<\/strong><\/p>\n<pre><strong>&lt;?php\r\n\r\nnamespace App\\Models;\r\n\r\nuse App\\Notifications\\ResetPasswordForMultiAuth; \/\/ \ud83d\udc48 \u8ffd\u52a0\u3057\u307e\u3057\u305f\r\nuse App\\Notifications\\VerifyEmailForMultiAuth;\/\/ \ud83d\udc48 \u8ffd\u52a0\u3057\u307e\u3057\u305f\r\nuse Illuminate\\Contracts\\Auth\\MustVerifyEmail; \/\/ \ud83d\udc48 \u30b3\u30e1\u30f3\u30c8\u30a2\u30a6\u30c8\u3092\u89e3\u9664\u3057\u307e\u3057\u305f\r\nuse Illuminate\\Database\\Eloquent\\Factories\\HasFactory;\r\nuse Illuminate\\Foundation\\Auth\\User as Authenticatable;\r\nuse Illuminate\\Notifications\\Notifiable;\r\nuse Laravel\\Sanctum\\HasApiTokens;\r\n\r\nclass Student extends Authenticatable implements MustVerifyEmail \/\/ MustVerifyEmail\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f\r\n{\r\n    use HasApiTokens, HasFactory, Notifiable;\r\n\r\n    \/**\r\n     * The attributes that are mass assignable.\r\n     *\r\n     * @var array&lt;int, string&gt;\r\n     *\/\r\n    protected $fillable = [\r\n        'name',\r\n        'email',\r\n        'password',\r\n    ];\r\n\r\n    \/**\r\n     * The attributes that should be hidden for serialization.\r\n     *\r\n     * @var array&lt;int, string&gt;\r\n     *\/\r\n    protected $hidden = [\r\n        'password',\r\n        'remember_token',\r\n    ];\r\n\r\n    \/**\r\n     * The attributes that should be cast.\r\n     *\r\n     * @var array&lt;string, string&gt;\r\n     *\/\r\n    protected $casts = [\r\n        'email_verified_at' =&gt; 'datetime',\r\n        'password' =&gt; 'hashed',\r\n    ];\r\n\r\n    \/\/ \ud83d\udc47 \u4ee5\u964d\u3001\u30aa\u30fc\u30d0\u30fc\u30e9\u30a4\u30c9\u3057\u307e\u3057\u305f\r\n    public function sendPasswordResetNotification($token)\r\n    {\r\n        $this-&gt;notify(new ResetPasswordForMultiAuth($token));\r\n    }\r\n\r\n    public function sendEmailVerificationNotification()\r\n    {\r\n        $this-&gt;notify(new VerifyEmailForMultiAuth());\r\n    }\r\n}\r\n<\/strong><\/pre>\n<h2>\u30de\u30a4\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3<\/h2>\n<p><strong>database\/migrations\/****_**_**_******_create_students_table.php<\/strong><\/p>\n<pre>\/\/ \u7701\u7565\r\n\r\n<strong>Schema::create('students', function (Blueprint $table) {\r\n    $table-&gt;id();\r\n    $table-&gt;string('name');\r\n    $table-&gt;string('email')-&gt;unique();\r\n    $table-&gt;timestamp('email_verified_at')-&gt;nullable();\r\n    $table-&gt;string('password');\r\n    $table-&gt;rememberToken();\r\n    $table-&gt;timestamps();\r\n});<\/strong>\r\n\r\n\/\/ \u7701\u7565\r\n<\/pre>\n<h2>Factory<\/h2>\n<p><strong>database\/factories\/StudentFactory.php<\/strong><\/p>\n<pre>\/\/ \u7701\u7565\r\n\r\npublic function definition(): array\r\n{\r\n    return [\r\n        <strong>'name' =&gt; fake()-&gt;name(),\r\n        'email' =&gt; fake()-&gt;unique()-&gt;safeEmail(),\r\n        'email_verified_at' =&gt; now(),\r\n        'password' =&gt; Hash::make('password'),\r\n        'remember_token' =&gt; Str::random(10),<\/strong>\r\n    ];\r\n}\r\n\r\n\/\/ \u7701\u7565\r\n<\/pre>\n<h2>Seeder<\/h2>\n<p><strong>database\/seeders\/StudentSeeder.php<\/strong><\/p>\n<pre><strong>&lt;?php\r\n\r\nnamespace Database\\Seeders;\r\n\r\nuse Database\\Factories\\StudentFactory;\r\nuse Illuminate\\Database\\Console\\Seeds\\WithoutModelEvents;\r\nuse Illuminate\\Database\\Seeder;\r\n\r\nclass StudentSeeder extends Seeder\r\n{\r\n    \/**\r\n     * Run the database seeds.\r\n     *\/\r\n    public function run(): void\r\n    {\r\n        for($i = 0; $i &lt; 10; $i++) {\r\n\r\n            $email = 'student' . $i . '@example.com';\r\n\r\n            StudentFactory::new()-&gt;create([\r\n                'email' =&gt; $email,\r\n            ]);\r\n\r\n        }\r\n    }\r\n}\r\n<\/strong><\/pre>\n<p>\u3061\u306a\u307f\u306b\u3001\u79c1\u306e\u5834\u5408\u3059\u3050\u5b9a\u7fa9\u5834\u6240\u306b\u79fb\u52d5\u3067\u304d\u306a\u304f\u306a\u308b\u306e\u3067\u3001<\/p>\n<pre><strong>User::factory()-&gt;create();\r\n<\/strong><\/pre>\n<p>\u3068\u3044\u3046\u66f8\u304d\u65b9\u306f\u3057\u307e\u305b\u3093\u3002\uff08\u3082\u3057\u304b\u3057\u3066\u3001\u3053\u3063\u3061\u306e\u307b\u3046\u304c\u4e3b\u6d41\u306a\u306e\u304b\u306a\u2026\ud83e\udd14\uff09<\/p>\n<div><code>Seeder<\/code>\u306f\u4f5c\u3063\u305f\u3060\u3051\u3067\u306f\u6709\u52b9\u306b\u306a\u308a\u307e\u305b\u3093\u306e\u3067\u3001<code>DatabaseSeeder<\/code>\u3078\u767b\u9332\u3057\u307e\u3059\u3002<\/div>\n<p>&nbsp;<\/p>\n<div><strong>database\/seeders\/DatabaseSeeder.php<\/strong><\/div>\n<pre>&lt;?php\r\n\r\nnamespace Database\\Seeders;\r\n\r\n\/\/ use Illuminate\\Database\\Console\\Seeds\\WithoutModelEvents;\r\nuse Illuminate\\Database\\Seeder;\r\n\r\nclass DatabaseSeeder extends Seeder\r\n{\r\n    \/**\r\n     * Seed the application's database.\r\n     *\/\r\n    public function run(): void\r\n    {\r\n        \/\/ \u7701\u7565\r\n\r\n        <strong>$this-&gt;call([ \/\/ \ud83d\udc48 \u3053\u3053\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f\r\n            StudentSeeder::class,\r\n        ]);<\/strong>\r\n    }\r\n}\r\n<\/pre>\n<p>\u3067\u306f\u3001\u3053\u306e\u72b6\u614b\u3067\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3092\u521d\u671f\u5316\u3057\u3066\u307f\u307e\u3057\u3087\u3046\u3002<br \/>\n\u4ee5\u4e0b\u306e\u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<pre><strong>php artisan migrate:fresh --seed\r\n<\/strong><\/pre>\n<p>\u3059\u308b\u3068\u3001\u5b9f\u969b\u306e\u30c6\u30fc\u30d6\u30eb\u306f\u3053\u3046\u306a\u308a\u307e\u3057\u305f\u3002<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-11815\" style=\"border: 3px solid #000;\" src=\"https:\/\/blog.capilano-fw.com\/wp-content\/uploads\/2023\/07\/laravel_breeze_multi_auth_1.png\" alt=\"\" width=\"541\" height=\"500\" srcset=\"https:\/\/blog.capilano-fw.com\/wp-content\/uploads\/2023\/07\/laravel_breeze_multi_auth_1.png 541w, https:\/\/blog.capilano-fw.com\/wp-content\/uploads\/2023\/07\/laravel_breeze_multi_auth_1-300x277.png 300w\" sizes=\"auto, (max-width: 541px) 100vw, 541px\" \/><\/p>\n<h1>Notification \u3092\u3064\u304f\u308b<\/h1>\n<p>\u5148\u307b\u3069\u3001\u30e2\u30c7\u30eb\u306e\u4e2d\u3067\uff12\u3064\u306e<code>Notification<\/code>\uff08\u2252 \u30e1\u30fc\u30eb\u9001\u4fe1\uff09\u3092\u30bb\u30c3\u30c8\u3057\u307e\u3057\u305f\u306e\u3067\u3053\u308c\u3089\u3092\u3064\u304f\u308a\u307e\u3059\u3002<\/p>\n<p>\u203b \u3061\u306a\u307f\u306b\u3001\u521d\u671f\u72b6\u614b\u3092\u8e0f\u307e\u3048\u3066<code>Notification<\/code>\u3092\u4f7f\u3063\u3066\u3044\u307e\u3059\u304c\u3001\u500b\u4eba\u7684\u306b\u306f\u3042\u307e\u308a\u4f7f\u3044\u52dd\u624b\u304c\u3044\u3044\u3068\u611f\u3058\u306a\u3044\u306e\u3067\u3001<code>Mailable<\/code>\u3092\u4f7f\u3046\u307b\u3046\u304c\u597d\u307f\u3067\u3059\u3002HTML\u30e1\u30fc\u30eb\u306b\u5bfe\u5fdc\u3057\u3066\u3044\u306a\u3044\u5834\u5408\u3082\u307e\u308c\u306b\u3042\u308b\u3088\u3046\u3067\u3059\u3057\u306d\ud83d\ude09<\/p>\n<h2>\u30d1\u30b9\u30ef\u30fc\u30c9\u518d\u767a\u884c\u306e\u6642\u306e\u30e1\u30fc\u30eb\u9001\u4fe1<\/h2>\n<p>\u4ee5\u4e0b\u306e\u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<pre><strong> php artisan make:notification ResetPasswordForMultiAuth\r\n<\/strong><\/pre>\n<p>\u305d\u3057\u3066\u3001\u4f5c\u6210\u3055\u308c\u305f\u30d5\u30a1\u30a4\u30eb\u306e\u4e2d\u8eab\u3092\u6b21\u306e\u3088\u3046\u306b\u5909\u66f4\u3057\u307e\u3059\u3002<\/p>\n<p><strong>app\/Notifications\/ResetPasswordForMultiAuth.php<\/strong><\/p>\n<pre><strong>&lt;?php\r\n\r\nnamespace App\\Notifications;\r\n\r\nuse Illuminate\\Auth\\Notifications\\ResetPassword;\r\n\r\nclass ResetPasswordForMultiAuth extends ResetPassword\r\n{\r\n    protected function resetUrl($notifiable)\r\n    {\r\n        if (static::$createUrlCallback) {\r\n            return call_user_func(static::$createUrlCallback, $notifiable, $this-&gt;token);\r\n        }\r\n\r\n        $multi_auth_guard = multi_auth_guard();\r\n        $route_name = $multi_auth_guard . '.password.reset';\r\n\r\n        return url(route($route_name, [\r\n            'token' =&gt; $this-&gt;token,\r\n            'email' =&gt; $notifiable-&gt;getEmailForPasswordReset(),\r\n        ], false));\r\n    }\r\n}\r\n<\/strong><\/pre>\n<p>\u203b \u306a\u304a\u3001\u3053\u306e<code>Notification<\/code>\u306f\u521d\u671f\u72b6\u614b\u3067\u5229\u7528\u3055\u308c\u308b<code>Illuminate\\Auth\\Notifications\\ResetPassword<\/code>\u3092\u62e1\u5f35\u3057\u305f\u3082\u306e\u3067\u3059\u3002<\/p>\n<h2>Email verification \u306e\u6642\u306e\u30e1\u30fc\u30eb\u9001\u4fe1<\/h2>\n<p>\u6b21\u306b<code>Email verification<\/code>\uff08\u672c\u767b\u9332\u7528\u306eURL\u3092\u9001\u4fe1\u3059\u308b\u6a5f\u80fd\uff09\u306e\u305f\u3081\u306e<code>Notification<\/code>\u3067\u3059\u3002<\/p>\n<p>\u4ee5\u4e0b\u306e\u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<pre><strong>php artisan make:notification VerifyEmailForMultiAuth\r\n<\/strong><\/pre>\n<p>\u30d5\u30a1\u30a4\u30eb\u304c\u4f5c\u6210\u3055\u308c\u308b\u306e\u3067\u3001\u4e2d\u8eab\u3092\u6b21\u306e\u3088\u3046\u306b\u3057\u307e\u3059\u3002<\/p>\n<pre><strong>&lt;?php\r\n\r\nnamespace App\\Notifications;\r\n\r\nuse Illuminate\\Auth\\Notifications\\VerifyEmail as BaseVerifyEmail;\r\nuse Illuminate\\Support\\Carbon;\r\nuse Illuminate\\Support\\Facades\\Config;\r\nuse Illuminate\\Support\\Facades\\URL;\r\n\r\nclass VerifyEmailForMultiAuth extends BaseVerifyEmail\r\n{\r\n    private $multi_auth_guard;\r\n\r\n    public function __construct()\r\n    {\r\n        $this-&gt;multi_auth_guard = multi_auth_guard();\r\n    }\r\n\r\n    protected function verificationUrl($notifiable)\r\n    {\r\n        if (static::$createUrlCallback) {\r\n            return call_user_func(static::$createUrlCallback, $notifiable);\r\n        }\r\n\r\n        $route_name = $this-&gt;multi_auth_guard .'.verification.verify';\r\n\r\n        return URL::temporarySignedRoute(\r\n            $route_name,\r\n            Carbon::now()-&gt;addMinutes(Config::get('auth.verification.expire', 60)),\r\n            [\r\n                'id' =&gt; $notifiable-&gt;getKey(),\r\n                'hash' =&gt; sha1($notifiable-&gt;getEmailForVerification()),\r\n            ]\r\n        );\r\n    }\r\n}<\/strong><\/pre>\n<p>\u203b \u3053\u308c\u3082\u3001\u5143\u3005\u306e<code>Illuminate\\Auth\\Notifications\\VerifyEmail<\/code>\u3092\u62e1\u5f35\u3057\u305f\u3082\u306e\u3067\u3059\u3002<\/p>\n<h1>\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u3092\u62e1\u5f35\u3059\u308b<\/h1>\n<p>\u3067\u306f\u3001\u7d9a\u3044\u3066\u5404\u7a2e\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u3092\u4f5c\u3063\u3066\u3044\u304d\u307e\u3059\u3002<\/p>\n<p>\u4eca\u56de\u306f<code>student<\/code>\u3068\u3044\u3046<code>guard<\/code>\u3067\u3059\u306e\u3067\u3001<code>app\/Http\/Controllers\/Student<\/code>\u30d5\u30a9\u30eb\u30c0\u3078\u3053\u308c\u3089\u306e\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u3092\u8a2d\u7f6e\u3057\u307e\u3059\u3002<\/p>\n<p>\u203b \u306a\u304a\u3001\u3067\u304d\u308b\u3060\u3051\u6c4e\u7528\u7684\u306b\u3064\u304f\u3063\u3066\u3044\u308b\u306e\u3067\u3001\u30cd\u30fc\u30e0\u30b9\u30da\u30fc\u30b9\u3092\u5909\u66f4\u3059\u308b\u3060\u3051\u3067OK\u3060\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n<h2>\u30ed\u30b0\u30a4\u30f3<\/h2>\n<p><strong>app\/Http\/Controllers\/Student\/AuthenticatedSessionController.php<\/strong><\/p>\n<pre><strong>&lt;?php\r\n\r\nnamespace App\\Http\\Controllers\\Student;\r\n\r\nuse App\\Http\\Controllers\\Controller;\r\nuse App\\Http\\Requests\\Auth\\MultiAuthLoginRequest;\r\nuse Illuminate\\Http\\RedirectResponse;\r\nuse Illuminate\\Http\\Request;\r\nuse Illuminate\\Support\\Facades\\Auth;\r\nuse Illuminate\\View\\View;\r\n\r\nclass AuthenticatedSessionController extends Controller\r\n{\r\n    private $multi_auth_guard;\r\n\r\n    public function __construct()\r\n    {\r\n        $this-&gt;multi_auth_guard = multi_auth_guard();\r\n    }\r\n\r\n    \/**\r\n     * Display the login view.\r\n     *\/\r\n    public function create(): View\r\n    {\r\n        return view($this-&gt;multi_auth_guard .'.auth.login');\r\n    }\r\n\r\n    \/**\r\n     * Handle an incoming authentication request.\r\n     *\/\r\n    public function store(MultiAuthLoginRequest $request): RedirectResponse\r\n    {\r\n        $request-&gt;authenticate();\r\n\r\n        $request-&gt;session()-&gt;regenerate();\r\n\r\n        $redirect_url = route($this-&gt;multi_auth_guard .'.dashboard'); \/\/ \u30ed\u30b0\u30a4\u30f3\u5f8c\u306e\u30ea\u30c0\u30a4\u30ec\u30af\u30c8\u5148\r\n\r\n        return redirect()-&gt;intended($redirect_url);\r\n    }\r\n\r\n    \/**\r\n     * Destroy an authenticated session.\r\n     *\/\r\n    public function destroy(Request $request): RedirectResponse\r\n    {\r\n        Auth::guard($this-&gt;multi_auth_guard)-&gt;logout();\r\n\r\n        $request-&gt;session()-&gt;invalidate();\r\n\r\n        $request-&gt;session()-&gt;regenerateToken();\r\n\r\n        return to_route($this-&gt;multi_auth_guard .'.login');\r\n    }\r\n}\r\n<\/strong><\/pre>\n<h2>\u30e6\u30fc\u30b6\u30fc\u767b\u9332<\/h2>\n<p><strong>app\/Http\/Controllers\/Student\/RegisteredUserController.php<\/strong><\/p>\n<pre><strong>&lt;?php\r\n\r\nnamespace App\\Http\\Controllers\\Student;\r\n\r\nuse App\\Http\\Controllers\\Controller;\r\nuse Illuminate\\Auth\\Events\\Registered;\r\nuse Illuminate\\Http\\RedirectResponse;\r\nuse Illuminate\\Http\\Request;\r\nuse Illuminate\\Support\\Facades\\Hash;\r\nuse Illuminate\\Validation\\Rules;\r\nuse Illuminate\\View\\View;\r\n\r\nclass RegisteredUserController extends Controller\r\n{\r\n    private $multi_auth_guard;\r\n\r\n    public function __construct()\r\n    {\r\n        $this-&gt;multi_auth_guard = multi_auth_guard();\r\n    }\r\n\r\n    \/**\r\n     * Display the registration view.\r\n     *\/\r\n    public function create(): View\r\n    {\r\n        return view($this-&gt;multi_auth_guard .'.auth.register');\r\n    }\r\n\r\n    \/**\r\n     * Handle an incoming registration request.\r\n     *\r\n     * @throws \\Illuminate\\Validation\\ValidationException\r\n     *\/\r\n    public function store(Request $request): RedirectResponse\r\n    {\r\n        $model_name = 'App\\\\Models\\\\'. ucfirst($this-&gt;multi_auth_guard);\r\n\r\n        $request-&gt;validate([\r\n            'name' =&gt; ['required', 'string', 'max:255'],\r\n            'email' =&gt; ['required', 'string', 'email', 'max:255', 'unique:'. $model_name],\r\n            'password' =&gt; ['required', 'confirmed', Rules\\Password::defaults()],\r\n        ]);\r\n\r\n        $user = $model_name::create([\r\n            'name' =&gt; $request-&gt;name,\r\n            'email' =&gt; $request-&gt;email,\r\n            'password' =&gt; Hash::make($request-&gt;password),\r\n        ]);\r\n\r\n        event(new Registered($user));\r\n\r\n        auth($this-&gt;multi_auth_guard)-&gt;login($user);\r\n\r\n        return to_route($this-&gt;multi_auth_guard .'.dashboard');\r\n    }\r\n}\r\n<\/strong><\/pre>\n<h2>\u30d1\u30b9\u30ef\u30fc\u30c9\u518d\u767a\u884c<\/h2>\n<p><strong>app\/Http\/Controllers\/Student\/PasswordResetLinkController.php<\/strong><\/p>\n<pre><strong>&lt;?php\r\n\r\nnamespace App\\Http\\Controllers\\Student;\r\n\r\nuse App\\Http\\Controllers\\Controller;\r\nuse Illuminate\\Http\\RedirectResponse;\r\nuse Illuminate\\Http\\Request;\r\nuse Illuminate\\Support\\Facades\\Password;\r\nuse Illuminate\\Support\\Str;\r\nuse Illuminate\\View\\View;\r\n\r\nclass PasswordResetLinkController extends Controller\r\n{\r\n    private $multi_auth_guard;\r\n\r\n    public function __construct()\r\n    {\r\n        $this-&gt;multi_auth_guard = multi_auth_guard();\r\n    }\r\n\r\n    \/**\r\n     * Display the password reset link request view.\r\n     *\/\r\n    public function create(): View\r\n    {\r\n        return view($this-&gt;multi_auth_guard .'.auth.forgot-password');\r\n    }\r\n\r\n    \/**\r\n     * Handle an incoming password reset link request.\r\n     *\r\n     * @throws \\Illuminate\\Validation\\ValidationException\r\n     *\/\r\n    public function store(Request $request): RedirectResponse\r\n    {\r\n        $request-&gt;validate([\r\n            'email' =&gt; ['required', 'email'],\r\n        ]);\r\n\r\n        $provider_name = Str::plural($this-&gt;multi_auth_guard); \/\/ \u8907\u6570\u5f62\u306b\u3059\u308b\r\n\r\n        \/\/ We will send the password reset link to this user. Once we have attempted\r\n        \/\/ to send the link, we will examine the response then see the message we\r\n        \/\/ need to show to the user. Finally, we'll send out a proper response.\r\n        $status = Password::broker($provider_name)-&gt;sendResetLink(\r\n            $request-&gt;only('email')\r\n        );\r\n\r\n        return $status == Password::RESET_LINK_SENT\r\n                    ? back()-&gt;with('status', __($status))\r\n                    : back()-&gt;withInput($request-&gt;only('email'))\r\n                            -&gt;withErrors(['email' =&gt; __($status)]);\r\n    }\r\n}\r\n<\/strong><\/pre>\n<p><strong>app\/Http\/Controllers\/Student\/NewPasswordController.php<\/strong><\/p>\n<pre><strong>&lt;?php\r\n\r\nnamespace App\\Http\\Controllers\\Student;\r\n\r\nuse App\\Http\\Controllers\\Controller;\r\nuse Illuminate\\Auth\\Events\\PasswordReset;\r\nuse Illuminate\\Http\\RedirectResponse;\r\nuse Illuminate\\Http\\Request;\r\nuse Illuminate\\Support\\Facades\\Hash;\r\nuse Illuminate\\Support\\Facades\\Password;\r\nuse Illuminate\\Support\\Str;\r\nuse Illuminate\\Validation\\Rules;\r\nuse Illuminate\\View\\View;\r\n\r\nclass NewPasswordController extends Controller\r\n{\r\n    private $multi_auth_guard;\r\n\r\n    public function __construct()\r\n    {\r\n        $this-&gt;multi_auth_guard = multi_auth_guard();\r\n    }\r\n\r\n    \/**\r\n     * Display the password reset view.\r\n     *\/\r\n    public function create(Request $request): View\r\n    {\r\n        return view($this-&gt;multi_auth_guard .'.auth.reset-password', ['request' =&gt; $request]);\r\n    }\r\n\r\n    \/**\r\n     * Handle an incoming new password request.\r\n     *\r\n     * @throws \\Illuminate\\Validation\\ValidationException\r\n     *\/\r\n    public function store(Request $request): RedirectResponse\r\n    {\r\n        $request-&gt;validate([\r\n            'token' =&gt; ['required'],\r\n            'email' =&gt; ['required', 'email'],\r\n            'password' =&gt; ['required', 'confirmed', Rules\\Password::defaults()],\r\n        ]);\r\n\r\n        $provider_name = Str::plural($this-&gt;multi_auth_guard);\r\n\r\n        \/\/ Here we will attempt to reset the user's password. If it is successful we\r\n        \/\/ will update the password on an actual user model and persist it to the\r\n        \/\/ database. Otherwise we will parse the error and return the response.\r\n        $status = Password::broker($provider_name)-&gt;reset(\r\n            $request-&gt;only('email', 'password', 'password_confirmation', 'token'),\r\n            function ($user) use ($request) {\r\n                $user-&gt;forceFill([\r\n                    'password' =&gt; Hash::make($request-&gt;password),\r\n                    'remember_token' =&gt; Str::random(60),\r\n                ])-&gt;save();\r\n\r\n                event(new PasswordReset($user));\r\n            }\r\n        );\r\n\r\n        $route_name = $this-&gt;multi_auth_guard .'.login';\r\n\r\n        \/\/ If the password was successfully reset, we will redirect the user back to\r\n        \/\/ the application's home authenticated view. If there is an error we can\r\n        \/\/ redirect them back to where they came from with their error message.\r\n        return $status == Password::PASSWORD_RESET\r\n                    ? redirect()-&gt;route($route_name)-&gt;with('status', __($status))\r\n                    : back()-&gt;withInput($request-&gt;only('email'))\r\n                            -&gt;withErrors(['email' =&gt; __($status)]);\r\n    }\r\n}\r\n<\/strong><\/pre>\n<h2>Email verification<\/h2>\n<p>\u300c<strong>Email verification<\/strong>\u300d\u3068\u306f\u3001\u30e6\u30fc\u30b6\u30fc\u767b\u9332\u3059\u308b\u3068\u304d\u306b\u4e00\u65e6\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u306b\u672c\u767b\u9332URL\u3092\u9001\u4fe1\u3057\u3001\u305d\u306e\u30ea\u30f3\u30af\u304c\u30af\u30ea\u30c3\u30af\u3055\u308c\u305f\u3089\u5b9f\u969b\u306b\u767b\u9332\u306b\u306a\u308b\u3068\u3044\u3046\u6a5f\u80fd\u3067\u3059\uff08\u3064\u307e\u308a\u3001\u3061\u3083\u3093\u3068\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u304c\u5b58\u5728\u3057\u3066\u3044\u308b\u304b\u78ba\u8a8d\u3057\u3066\u3044\u308b\u308f\u3051\u3067\u3059\u306d\uff09<\/p>\n<p><strong>app\/Http\/Controllers\/Student\/EmailVerificationNotificationController.php<\/strong><\/p>\n<pre><strong>&lt;?php\r\n\r\nnamespace App\\Http\\Controllers\\Student;\r\n\r\nuse App\\Http\\Controllers\\Controller;\r\nuse Illuminate\\Http\\RedirectResponse;\r\nuse Illuminate\\Http\\Request;\r\n\r\nclass EmailVerificationNotificationController extends Controller\r\n{\r\n    \/**\r\n     * Send a new email verification notification.\r\n     *\/\r\n    public function store(Request $request): RedirectResponse\r\n    {\r\n        $multi_auth_guard = multi_auth_guard();\r\n        $intended_url = route($multi_auth_guard .'.dashboard');\r\n\r\n        if ($request-&gt;user()-&gt;hasVerifiedEmail()) {\r\n            return redirect()-&gt;intended($intended_url);\r\n        }\r\n\r\n        $request-&gt;user()-&gt;sendEmailVerificationNotification();\r\n\r\n        return back()-&gt;with('status', 'verification-link-sent');\r\n    }\r\n}\r\n<\/strong><\/pre>\n<p><strong>app\/Http\/Controllers\/Student\/EmailVerificationPromptController.php<\/strong><\/p>\n<pre><strong>&lt;?php\r\n\r\nnamespace App\\Http\\Controllers\\Student;\r\n\r\nuse App\\Http\\Controllers\\Controller;\r\nuse Illuminate\\Http\\RedirectResponse;\r\nuse Illuminate\\Http\\Request;\r\nuse Illuminate\\View\\View;\r\n\r\nclass EmailVerificationPromptController extends Controller\r\n{\r\n    \/**\r\n     * Display the email verification prompt.\r\n     *\/\r\n    public function __invoke(Request $request): RedirectResponse|View\r\n    {\r\n        $multi_auth_guard = multi_auth_guard();\r\n        $intended_url = route($multi_auth_guard .'.dashboard');\r\n        $view_name = $multi_auth_guard .'.auth.verify-email';\r\n\r\n        return $request-&gt;user()-&gt;hasVerifiedEmail()\r\n                    ? redirect()-&gt;intended($intended_url)\r\n                    : view($view_name);\r\n    }\r\n}\r\n<\/strong><\/pre>\n<p><strong>app\/Http\/Controllers\/Student\/VerifyEmailController.php<\/strong><\/p>\n<pre><strong>&lt;?php\r\n\r\nnamespace App\\Http\\Controllers\\Student;\r\n\r\nuse App\\Http\\Controllers\\Controller;\r\nuse Illuminate\\Auth\\Events\\Verified;\r\nuse Illuminate\\Foundation\\Auth\\EmailVerificationRequest;\r\nuse Illuminate\\Http\\RedirectResponse;\r\n\r\nclass VerifyEmailController extends Controller\r\n{\r\n    \/**\r\n     * Mark the authenticated user's email address as verified.\r\n     *\/\r\n    public function __invoke(EmailVerificationRequest $request): RedirectResponse\r\n    {\r\n        $multi_auth_guard = multi_auth_guard();\r\n        $redirect_route_name = $multi_auth_guard .'.dashboard';\r\n\r\n        if ($request-&gt;user()-&gt;hasVerifiedEmail()) {\r\n            return to_route($redirect_route_name);\r\n        }\r\n\r\n        if ($request-&gt;user()-&gt;markEmailAsVerified()) {\r\n            event(new Verified($request-&gt;user()));\r\n        }\r\n\r\n        return to_route($redirect_route_name);\r\n    }\r\n}\r\n<\/strong><\/pre>\n<h1>FormRequest \u3092\u3064\u304f\u308b<\/h1>\n<p>\u6b21\u306b\u3001<code>AuthenticatedSessionController.php<\/code>\u3067\u4f7f\u3063\u305f<code>MultiAuthLoginRequest<\/code>\u3092\u3064\u304f\u308a\u307e\u3059\u3002<\/p>\n<p>\u4ee5\u4e0b\u306e\u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<pre><strong>php artisan make:request Auth\\\\MultiAuthLoginRequest\r\n<\/strong><\/pre>\n<p>\u3059\u308b\u3068\u3001\u30d5\u30a1\u30a4\u30eb\u304c\u4f5c\u6210\u3055\u308c\u308b\u306e\u3067\u4e2d\u8eab\u3092\u6b21\u306e\u3088\u3046\u306b\u5909\u66f4\u3057\u307e\u3059\u3002<\/p>\n<p><strong>app\/Http\/Requests\/Auth\/MultiAuthLoginRequest.php<\/strong><\/p>\n<pre><strong>&lt;?php\r\n\r\nnamespace App\\Http\\Requests\\Auth;\r\n\r\nuse Illuminate\\Auth\\Events\\Lockout;\r\nuse Illuminate\\Foundation\\Http\\FormRequest;\r\nuse Illuminate\\Support\\Facades\\RateLimiter;\r\nuse Illuminate\\Support\\Str;\r\nuse Illuminate\\Validation\\ValidationException;\r\n\r\nclass MultiAuthLoginRequest extends FormRequest\r\n{\r\n    \/**\r\n     * Determine if the user is authorized to make this request.\r\n     *\/\r\n    public function authorize(): bool\r\n    {\r\n        return true;\r\n    }\r\n\r\n    \/**\r\n     * Get the validation rules that apply to the request.\r\n     *\r\n     * @return array&lt;string, \\Illuminate\\Contracts\\Validation\\Rule|array|string&gt;\r\n     *\/\r\n    public function rules(): array\r\n    {\r\n        return [\r\n            'email' =&gt; ['required', 'string', 'email'],\r\n            'password' =&gt; ['required', 'string'],\r\n        ];\r\n    }\r\n\r\n    \/**\r\n     * Attempt to authenticate the request's credentials.\r\n     *\r\n     * @throws \\Illuminate\\Validation\\ValidationException\r\n     *\/\r\n    public function authenticate(): void\r\n    {\r\n        $this-&gt;ensureIsNotRateLimited();\r\n        $multi_auth_guard = multi_auth_guard();\r\n\r\n        if (! auth($multi_auth_guard)-&gt;attempt($this-&gt;only('email', 'password'), $this-&gt;boolean('remember'))) {\r\n            RateLimiter::hit($this-&gt;throttleKey());\r\n\r\n            throw ValidationException::withMessages([\r\n                'email' =&gt; trans('auth.failed'),\r\n            ]);\r\n        }\r\n\r\n        RateLimiter::clear($this-&gt;throttleKey());\r\n    }\r\n\r\n    \/**\r\n     * Ensure the login request is not rate limited.\r\n     *\r\n     * @throws \\Illuminate\\Validation\\ValidationException\r\n     *\/\r\n    public function ensureIsNotRateLimited(): void\r\n    {\r\n        if (! RateLimiter::tooManyAttempts($this-&gt;throttleKey(), 5)) {\r\n            return;\r\n        }\r\n\r\n        event(new Lockout($this));\r\n\r\n        $seconds = RateLimiter::availableIn($this-&gt;throttleKey());\r\n\r\n        throw ValidationException::withMessages([\r\n            'email' =&gt; trans('auth.throttle', [\r\n                'seconds' =&gt; $seconds,\r\n                'minutes' =&gt; ceil($seconds \/ 60),\r\n            ]),\r\n        ]);\r\n    }\r\n\r\n    \/**\r\n     * Get the rate limiting throttle key for the request.\r\n     *\/\r\n    public function throttleKey(): string\r\n    {\r\n        return Str::transliterate(Str::lower($this-&gt;input('email')).'|'.$this-&gt;ip());\r\n    }\r\n}\r\n<\/strong><\/pre>\n<h1>\u5404\u7a2e\u30df\u30c9\u30eb\u30a6\u30a7\u30a2\u3092\u4f5c\u6210\uff06\u5909\u66f4\u3059\u308b<\/h1>\n<p><code>Multi Auth<\/code>\u3092\u5b9f\u73fe\u3059\u308b\u305f\u3081\u306b\u306f\u3044\u304f\u3064\u304b\u30df\u30c9\u30eb\u30a6\u30a7\u30a2\u304c\u5fc5\u8981\u306b\u306a\u3063\u3066\u304d\u307e\u3059\u3002<br \/>\n\u305d\u308c\u305e\u308c\u4f5c\u6210\uff06\u5909\u66f4\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<h2>\u30ed\u30b0\u30a4\u30f3\u5931\u6557\u6642\u306e\u30ea\u30c0\u30a4\u30ec\u30af\u30c8\u5148\u3092\u5909\u66f4\u3059\u308b<\/h2>\n<p>\u3053\u306e\u30df\u30c9\u30eb\u30a6\u30a7\u30a2\u306f\u3059\u3067\u306b\u5b58\u5728\u3057\u3066\u3044\u307e\u3059\u306e\u3067\u3001\u4e2d\u8eab\u3092\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u5909\u66f4\u3057\u307e\u3059\u3002<\/p>\n<p><strong>app\/Http\/Middleware\/Authenticate.php<\/strong><\/p>\n<pre><strong>&lt;?php\r\n\r\nnamespace App\\Http\\Middleware;\r\n\r\nuse Illuminate\\Auth\\Middleware\\Authenticate as Middleware;\r\nuse Illuminate\\Http\\Request;\r\n\r\nclass Authenticate extends Middleware\r\n{\r\n    \/**\r\n     * Get the path the user should be redirected to when they are not authenticated.\r\n     *\/\r\n    protected function redirectTo(Request $request): ?string\r\n    {\r\n        if (! $request-&gt;expectsJson()) {\r\n\r\n            $multi_auth_guard = multi_auth_guard();\r\n\r\n            if(! is_null($multi_auth_guard)) {\r\n\r\n                return route($multi_auth_guard .'.login');\r\n\r\n            }\r\n\r\n            return url('\/');\r\n        }\r\n\r\n        return null;\r\n    }\r\n}\r\n<\/strong><\/pre>\n<h2>Email Verification \u304c\u5b8c\u4e86\u3057\u3066\u3044\u308b\u304b\u30c1\u30a7\u30c3\u30af\u3059\u308b\u30df\u30c9\u30eb\u30a6\u30a7\u30a2<\/h2>\n<p>\u3053\u306e\u30df\u30c9\u30eb\u30a6\u30a7\u30a2\u306f\u5b58\u5728\u3057\u3066\u3044\u307e\u305b\u3093\u306e\u3067\u3001\u4ee5\u4e0b\u306e\u30b3\u30de\u30f3\u30c9\u3067\u65b0\u898f\u4f5c\u6210\u3057\u307e\u3059\u3002<\/p>\n<pre><strong>php artisan make:middleware EnsureEmailIsVerifiedForMultiAuth\r\n<\/strong><\/pre>\n<p>\u3059\u308b\u3068\u3001\u30d5\u30a1\u30a4\u30eb\u304c\u4f5c\u6210\u3055\u308c\u308b\u306e\u3067\u4e2d\u8eab\u3092\u6b21\u306e\u3088\u3046\u306b\u3057\u307e\u3059\u3002<\/p>\n<p><strong>app\/Http\/Middleware\/EnsureEmailIsVerifiedForMultiAuth.php<\/strong><\/p>\n<pre><strong>&lt;?php\r\n\r\nnamespace App\\Http\\Middleware;\r\n\r\nuse Closure;\r\nuse Illuminate\\Contracts\\Auth\\MustVerifyEmail;\r\nuse Illuminate\\Support\\Facades\\Redirect;\r\nuse Illuminate\\Support\\Facades\\URL;\r\nuse Symfony\\Component\\HttpFoundation\\Response;\r\n\r\nclass EnsureEmailIsVerifiedForMultiAuth\r\n{\r\n    \/**\r\n     * Handle an incoming request.\r\n     *\r\n     * @param  \\Closure(\\Illuminate\\Http\\Request): (\\Symfony\\Component\\HttpFoundation\\Response)  $next\r\n     *\/\r\n    public function handle($request, Closure $next, $redirectToRoute = null): Response\r\n    {\r\n        $multi_auth_guard = multi_auth_guard();\r\n        $redirect_route_name = $multi_auth_guard .'.verification.notice';\r\n\r\n        if (! $request-&gt;user() ||\r\n            ($request-&gt;user() instanceof MustVerifyEmail &amp;&amp;\r\n                ! $request-&gt;user()-&gt;hasVerifiedEmail())) {\r\n            return $request-&gt;expectsJson()\r\n                ? abort(403, 'Your email address is not verified.')\r\n                : Redirect::guest(URL::route($redirectToRoute ?: $redirect_route_name));\r\n        }\r\n\r\n        return $next($request);\r\n    }\r\n}\r\n\r\n<\/strong><\/pre>\n<p>\u305d\u3057\u3066\u3001\u3053\u306e\u30df\u30c9\u30eb\u30a6\u30a7\u30a2\u3092<code>Laravel<\/code>\u306b\u767b\u9332\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<p><strong>app\/Http\/Kernel.php<\/strong><\/p>\n<pre>&lt;?php\r\n\r\nnamespace App\\Http;\r\n\r\n<strong>use App\\Http\\Middleware\\EnsureEmailIsVerifiedForMultiAuth; \/\/ \ud83d\udc48 \u3053\u3053\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f<\/strong>\r\nuse Illuminate\\Foundation\\Http\\Kernel as HttpKernel;\r\n\r\nclass Kernel extends HttpKernel\r\n{\r\n\r\n    \/\/ \u7701\u7565\r\n\r\n    protected $middlewareAliases = [\r\n\r\n        \/\/ \u7701\u7565\r\n\r\n        <strong>'verified_for_multi_auth' =&gt; EnsureEmailIsVerifiedForMultiAuth::class, \/\/ \ud83d\udc48 \u3053\u3053\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f<\/strong>\r\n    ];\r\n}<\/pre>\n<h2>\u3059\u3067\u306b\u30ed\u30b0\u30a4\u30f3\u6e08\u307f\u306e\u3068\u304d\u306e\u30ea\u30c0\u30a4\u30ec\u30af\u30c8\u5148\u3092\u5909\u66f4\u3059\u308b<\/h2>\n<p><strong>app\/Http\/Middleware\/RedirectIfAuthenticated.php<\/strong><\/p>\n<pre>&lt;?php\r\n\r\nnamespace App\\Http\\Middleware;\r\n\r\nuse App\\Providers\\RouteServiceProvider;\r\nuse Closure;\r\nuse Illuminate\\Http\\Request;\r\nuse Illuminate\\Support\\Facades\\Auth;\r\nuse Symfony\\Component\\HttpFoundation\\Response;\r\n\r\nclass RedirectIfAuthenticated\r\n{\r\n    \/**\r\n     * Handle an incoming request.\r\n     *\r\n     * @param  \\Closure(\\Illuminate\\Http\\Request): (\\Symfony\\Component\\HttpFoundation\\Response)  $next\r\n     *\/\r\n    public function handle(Request $request, Closure $next, string ...$guards): Response\r\n    {\r\n        $guards = empty($guards) ? [null] : $guards;\r\n\r\n        foreach ($guards as $guard) {\r\n            if (Auth::guard($guard)-&gt;check()) {\r\n\r\n                <strong>$multi_auth_guard = multi_auth_guard();\r\n\r\n                if($guard === $multi_auth_guard) {\r\n\r\n                    return to_route($multi_auth_guard .'.dashboard');\r\n\r\n                }<\/strong>\r\n\r\n                return redirect(RouteServiceProvider::HOME);\r\n            }\r\n        }\r\n\r\n        return $next($request);\r\n    }\r\n}<\/pre>\n<p><strong>\u203b \u592a\u5b57\u306e\u90e8\u5206\u3092\u8ffd\u52a0\u3057\u3066\u3044\u307e\u3059<\/strong><\/p>\n<h1>\u30d3\u30e5\u30fc\u3092\u3064\u304f\u308b<\/h1>\n<p>\u30d6\u30e9\u30a6\u30b6\u3067\u8868\u793a\u3055\u308c\u308b\u3053\u3068\u306b\u306a\u308b<code>HTML<\/code>\u3092\u542b\u3093\u3060\u30b3\u30fc\u30c9\u3092\u3064\u304f\u3063\u3066\u3044\u304d\u307e\u3059\u3002<\/p>\n<h2>\u30ed\u30b0\u30a4\u30f3<\/h2>\n<p><strong>resources\/views\/student\/auth\/login.blade.php<\/strong><\/p>\n<pre><strong>&lt;x-guest-layout&gt;\r\n    &lt;!-- Session Status --&gt;\r\n    &lt;x-auth-session-status class=\"mb-4\" :status=\"session('status')\" \/&gt;\r\n\r\n    &lt;form method=\"POST\" action=\"{{ route($multi_auth_guard .'.login') }}\"&gt;\r\n        @csrf\r\n\r\n        &lt;!-- Email Address --&gt;\r\n        &lt;div&gt;\r\n            &lt;x-input-label for=\"email\" :value=\"__('Email')\" \/&gt;\r\n            &lt;x-text-input id=\"email\" class=\"block mt-1 w-full\" type=\"email\" name=\"email\" :value=\"old('email')\" required autofocus autocomplete=\"username\" \/&gt;\r\n            &lt;x-input-error :messages=\"$errors-&gt;get('email')\" class=\"mt-2\" \/&gt;\r\n        &lt;\/div&gt;\r\n\r\n        &lt;!-- Password --&gt;\r\n        &lt;div class=\"mt-4\"&gt;\r\n            &lt;x-input-label for=\"password\" :value=\"__('Password')\" \/&gt;\r\n\r\n            &lt;x-text-input id=\"password\" class=\"block mt-1 w-full\"\r\n                            type=\"password\"\r\n                            name=\"password\"\r\n                            required autocomplete=\"current-password\" \/&gt;\r\n\r\n            &lt;x-input-error :messages=\"$errors-&gt;get('password')\" class=\"mt-2\" \/&gt;\r\n        &lt;\/div&gt;\r\n\r\n        &lt;!-- Remember Me --&gt;\r\n        &lt;div class=\"block mt-4\"&gt;\r\n            &lt;label for=\"remember_me\" class=\"inline-flex items-center\"&gt;\r\n                &lt;input id=\"remember_me\" type=\"checkbox\" class=\"rounded border-gray-300 text-indigo-600 shadow-sm focus:ring-indigo-500\" name=\"remember\"&gt;\r\n                &lt;span class=\"ml-2 text-sm text-gray-600\"&gt;{{ __('Remember me') }}&lt;\/span&gt;\r\n            &lt;\/label&gt;\r\n        &lt;\/div&gt;\r\n\r\n        &lt;div class=\"flex items-center justify-end mt-4\"&gt;\r\n            @if (Route::has('password.request'))\r\n                &lt;a class=\"underline text-sm text-gray-600 hover:text-gray-900 rounded-md focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500\" href=\"{{ route($multi_auth_guard .'.password.request') }}\"&gt;\r\n                    {{ __('Forgot your password?') }}\r\n                &lt;\/a&gt;\r\n            @endif\r\n\r\n            &lt;x-primary-button class=\"ml-3\"&gt;\r\n                {{ __('Log in') }}\r\n            &lt;\/x-primary-button&gt;\r\n        &lt;\/div&gt;\r\n    &lt;\/form&gt;\r\n&lt;\/x-guest-layout&gt;\r\n<\/strong><\/pre>\n<h2>\u30e6\u30fc\u30b6\u30fc\u767b\u9332<\/h2>\n<p><strong>resources\/views\/student\/auth\/register.blade.php<\/strong><\/p>\n<pre><strong>&lt;x-guest-layout&gt;\r\n    &lt;form method=\"POST\" action=\"{{ route($multi_auth_guard .'.register') }}\"&gt;\r\n        @csrf\r\n\r\n        &lt;!-- Name --&gt;\r\n        &lt;div&gt;\r\n            &lt;x-input-label for=\"name\" :value=\"__('Name')\" \/&gt;\r\n            &lt;x-text-input id=\"name\" class=\"block mt-1 w-full\" type=\"text\" name=\"name\" :value=\"old('name')\" required autofocus autocomplete=\"name\" \/&gt;\r\n            &lt;x-input-error :messages=\"$errors-&gt;get('name')\" class=\"mt-2\" \/&gt;\r\n        &lt;\/div&gt;\r\n\r\n        &lt;!-- Email Address --&gt;\r\n        &lt;div class=\"mt-4\"&gt;\r\n            &lt;x-input-label for=\"email\" :value=\"__('Email')\" \/&gt;\r\n            &lt;x-text-input id=\"email\" class=\"block mt-1 w-full\" type=\"email\" name=\"email\" :value=\"old('email')\" required autocomplete=\"username\" \/&gt;\r\n            &lt;x-input-error :messages=\"$errors-&gt;get('email')\" class=\"mt-2\" \/&gt;\r\n        &lt;\/div&gt;\r\n\r\n        &lt;!-- Password --&gt;\r\n        &lt;div class=\"mt-4\"&gt;\r\n            &lt;x-input-label for=\"password\" :value=\"__('Password')\" \/&gt;\r\n\r\n            &lt;x-text-input id=\"password\" class=\"block mt-1 w-full\"\r\n                            type=\"password\"\r\n                            name=\"password\"\r\n                            required autocomplete=\"new-password\" \/&gt;\r\n\r\n            &lt;x-input-error :messages=\"$errors-&gt;get('password')\" class=\"mt-2\" \/&gt;\r\n        &lt;\/div&gt;\r\n\r\n        &lt;!-- Confirm Password --&gt;\r\n        &lt;div class=\"mt-4\"&gt;\r\n            &lt;x-input-label for=\"password_confirmation\" :value=\"__('Confirm Password')\" \/&gt;\r\n\r\n            &lt;x-text-input id=\"password_confirmation\" class=\"block mt-1 w-full\"\r\n                            type=\"password\"\r\n                            name=\"password_confirmation\" required autocomplete=\"new-password\" \/&gt;\r\n\r\n            &lt;x-input-error :messages=\"$errors-&gt;get('password_confirmation')\" class=\"mt-2\" \/&gt;\r\n        &lt;\/div&gt;\r\n\r\n        &lt;div class=\"flex items-center justify-end mt-4\"&gt;\r\n            &lt;a class=\"underline text-sm text-gray-600 hover:text-gray-900 rounded-md focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500\" href=\"{{ route($multi_auth_guard .'.login') }}\"&gt;\r\n                {{ __('Already registered?') }}\r\n            &lt;\/a&gt;\r\n\r\n            &lt;x-primary-button class=\"ml-4\"&gt;\r\n                {{ __('Register') }}\r\n            &lt;\/x-primary-button&gt;\r\n        &lt;\/div&gt;\r\n    &lt;\/form&gt;\r\n&lt;\/x-guest-layout&gt;\r\n<\/strong><\/pre>\n<h2>\u30d1\u30b9\u30ef\u30fc\u30c9\u518d\u767a\u884c<\/h2>\n<p><strong>resources\/views\/student\/auth\/forgot-password.blade.php<\/strong><\/p>\n<pre><strong>&lt;x-guest-layout&gt;\r\n    &lt;form method=\"POST\" action=\"{{ route($multi_auth_guard .'.register') }}\"&gt;\r\n        @csrf\r\n\r\n        &lt;!-- Name --&gt;\r\n        &lt;div&gt;\r\n            &lt;x-input-label for=\"name\" :value=\"__('Name')\" \/&gt;\r\n            &lt;x-text-input id=\"name\" class=\"block mt-1 w-full\" type=\"text\" name=\"name\" :value=\"old('name')\" required autofocus autocomplete=\"name\" \/&gt;\r\n            &lt;x-input-error :messages=\"$errors-&gt;get('name')\" class=\"mt-2\" \/&gt;\r\n        &lt;\/div&gt;\r\n\r\n        &lt;!-- Email Address --&gt;\r\n        &lt;div class=\"mt-4\"&gt;\r\n            &lt;x-input-label for=\"email\" :value=\"__('Email')\" \/&gt;\r\n            &lt;x-text-input id=\"email\" class=\"block mt-1 w-full\" type=\"email\" name=\"email\" :value=\"old('email')\" required autocomplete=\"username\" \/&gt;\r\n            &lt;x-input-error :messages=\"$errors-&gt;get('email')\" class=\"mt-2\" \/&gt;\r\n        &lt;\/div&gt;\r\n\r\n        &lt;!-- Password --&gt;\r\n        &lt;div class=\"mt-4\"&gt;\r\n            &lt;x-input-label for=\"password\" :value=\"__('Password')\" \/&gt;\r\n\r\n            &lt;x-text-input id=\"password\" class=\"block mt-1 w-full\"\r\n                            type=\"password\"\r\n                            name=\"password\"\r\n                            required autocomplete=\"new-password\" \/&gt;\r\n\r\n            &lt;x-input-error :messages=\"$errors-&gt;get('password')\" class=\"mt-2\" \/&gt;\r\n        &lt;\/div&gt;\r\n\r\n        &lt;!-- Confirm Password --&gt;\r\n        &lt;div class=\"mt-4\"&gt;\r\n            &lt;x-input-label for=\"password_confirmation\" :value=\"__('Confirm Password')\" \/&gt;\r\n\r\n            &lt;x-text-input id=\"password_confirmation\" class=\"block mt-1 w-full\"\r\n                            type=\"password\"\r\n                            name=\"password_confirmation\" required autocomplete=\"new-password\" \/&gt;\r\n\r\n            &lt;x-input-error :messages=\"$errors-&gt;get('password_confirmation')\" class=\"mt-2\" \/&gt;\r\n        &lt;\/div&gt;\r\n\r\n        &lt;div class=\"flex items-center justify-end mt-4\"&gt;\r\n            &lt;a class=\"underline text-sm text-gray-600 hover:text-gray-900 rounded-md focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500\" href=\"{{ route($multi_auth_guard .'.login') }}\"&gt;\r\n                {{ __('Already registered?') }}\r\n            &lt;\/a&gt;\r\n\r\n            &lt;x-primary-button class=\"ml-4\"&gt;\r\n                {{ __('Register') }}\r\n            &lt;\/x-primary-button&gt;\r\n        &lt;\/div&gt;\r\n    &lt;\/form&gt;\r\n&lt;\/x-guest-layout&gt;\r\n<\/strong><\/pre>\n<p><strong>resources\/views\/student\/auth\/reset-password.blade.php<\/strong><\/p>\n<pre><strong>&lt;x-guest-layout&gt;\r\n    &lt;form method=\"POST\" action=\"{{ route($multi_auth_guard .'.password.store') }}\"&gt;\r\n        @csrf\r\n\r\n        &lt;!-- Password Reset Token --&gt;\r\n        &lt;input type=\"hidden\" name=\"token\" value=\"{{ $request-&gt;route('token') }}\"&gt;\r\n\r\n        &lt;!-- Email Address --&gt;\r\n        &lt;div&gt;\r\n            &lt;x-input-label for=\"email\" :value=\"__('Email')\" \/&gt;\r\n            &lt;x-text-input id=\"email\" class=\"block mt-1 w-full\" type=\"email\" name=\"email\" :value=\"old('email', $request-&gt;email)\" required autofocus autocomplete=\"username\" \/&gt;\r\n            &lt;x-input-error :messages=\"$errors-&gt;get('email')\" class=\"mt-2\" \/&gt;\r\n        &lt;\/div&gt;\r\n\r\n        &lt;!-- Password --&gt;\r\n        &lt;div class=\"mt-4\"&gt;\r\n            &lt;x-input-label for=\"password\" :value=\"__('Password')\" \/&gt;\r\n            &lt;x-text-input id=\"password\" class=\"block mt-1 w-full\" type=\"password\" name=\"password\" required autocomplete=\"new-password\" \/&gt;\r\n            &lt;x-input-error :messages=\"$errors-&gt;get('password')\" class=\"mt-2\" \/&gt;\r\n        &lt;\/div&gt;\r\n\r\n        &lt;!-- Confirm Password --&gt;\r\n        &lt;div class=\"mt-4\"&gt;\r\n            &lt;x-input-label for=\"password_confirmation\" :value=\"__('Confirm Password')\" \/&gt;\r\n\r\n            &lt;x-text-input id=\"password_confirmation\" class=\"block mt-1 w-full\"\r\n                                type=\"password\"\r\n                                name=\"password_confirmation\" required autocomplete=\"new-password\" \/&gt;\r\n\r\n            &lt;x-input-error :messages=\"$errors-&gt;get('password_confirmation')\" class=\"mt-2\" \/&gt;\r\n        &lt;\/div&gt;\r\n\r\n        &lt;div class=\"flex items-center justify-end mt-4\"&gt;\r\n            &lt;x-primary-button&gt;\r\n                {{ __('Reset Password') }}\r\n            &lt;\/x-primary-button&gt;\r\n        &lt;\/div&gt;\r\n    &lt;\/form&gt;\r\n&lt;\/x-guest-layout&gt;\r\n<\/strong><\/pre>\n<h2>Email verification<\/h2>\n<p><strong>resources\/views\/student\/auth\/verify-email.blade.php<\/strong><\/p>\n<pre><strong>&lt;x-guest-layout&gt;\r\n    &lt;div class=\"mb-4 text-sm text-gray-600\"&gt;\r\n        {{ __('Thanks for signing up! Before getting started, could you verify your email address by clicking on the link we just emailed to you? If you didn\\'t receive the email, we will gladly send you another.') }}\r\n    &lt;\/div&gt;\r\n\r\n    @if (session('status') == 'verification-link-sent')\r\n        &lt;div class=\"mb-4 font-medium text-sm text-green-600\"&gt;\r\n            {{ __('A new verification link has been sent to the email address you provided during registration.') }}\r\n        &lt;\/div&gt;\r\n    @endif\r\n\r\n    &lt;div class=\"mt-4 flex items-center justify-between\"&gt;\r\n        &lt;form method=\"POST\" action=\"{{ route($multi_auth_guard .'.verification.send') }}\"&gt;\r\n            @csrf\r\n\r\n            &lt;div&gt;\r\n                &lt;x-primary-button&gt;\r\n                    {{ __('Resend Verification Email') }}\r\n                &lt;\/x-primary-button&gt;\r\n            &lt;\/div&gt;\r\n        &lt;\/form&gt;\r\n\r\n        &lt;form method=\"POST\" action=\"{{ route($multi_auth_guard .'.logout') }}\"&gt;\r\n            @csrf\r\n\r\n            &lt;button type=\"submit\" class=\"underline text-sm text-gray-600 hover:text-gray-900 rounded-md focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500\"&gt;\r\n                {{ __('Log Out') }}\r\n            &lt;\/button&gt;\r\n        &lt;\/form&gt;\r\n    &lt;\/div&gt;\r\n&lt;\/x-guest-layout&gt;\r\n<\/strong><\/pre>\n<h2>Dashboard\uff08\u30ed\u30b0\u30a4\u30f3\u5f8c\u306e\u30da\u30fc\u30b8\uff09<\/h2>\n<p><strong>resources\/views\/student\/dashboard.blade.php<\/strong><\/p>\n<pre><strong>{{ $multi_auth_guard }} \u3067\u30ed\u30b0\u30a4\u30f3\u4e2d\u3067\u3059\u3002<\/strong>\r\n<strong>\r\n&lt;form method=\"post\" action=\".\/logout\"&gt;\r\n    @csrf\r\n    &lt;button type=\"submit\"&gt;\u30ed\u30b0\u30a2\u30a6\u30c8&lt;\/button&gt;\r\n&lt;\/form&gt;\r\n<\/strong><\/pre>\n<h1>\u30eb\u30fc\u30c8\u3092\u3064\u304f\u308b<\/h1>\n<p><code>Laravel Breeze<\/code>\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u3068\u3001\u4f55\u3082\u3057\u306a\u304f\u3066\u3082<code>routes\/auth.php<\/code>\u3068\u3044\u3046\u30d5\u30a1\u30a4\u30eb\u304c\u4f5c\u6210\u3055\u308c\u307e\u3059\u306e\u3067\u3001\u3053\u308c\u3092\u30b3\u30d4\u30fc\u3057\u3001<code>routes\/student.php<\/code>\u3068\u3044\u3046\u30d5\u30a1\u30a4\u30eb\u3092\u3064\u304f\u308a\u3001\u4e2d\u8eab\u3092\u6b21\u306e\u3088\u3046\u306b\u5909\u66f4\u3057\u307e\u3059\u3002<\/p>\n<p><strong>routes\/student.php<\/strong><\/p>\n<pre><strong>&lt;?php\r\n\r\nuse App\\Http\\Controllers\\Student\\AuthenticatedSessionController;\r\nuse App\\Http\\Controllers\\Student\\ConfirmablePasswordController;\r\nuse App\\Http\\Controllers\\Student\\EmailVerificationNotificationController;\r\nuse App\\Http\\Controllers\\Student\\EmailVerificationPromptController;\r\nuse App\\Http\\Controllers\\Student\\NewPasswordController;\r\nuse App\\Http\\Controllers\\Student\\PasswordController;\r\nuse App\\Http\\Controllers\\Student\\PasswordResetLinkController;\r\nuse App\\Http\\Controllers\\Student\\RegisteredUserController;\r\nuse App\\Http\\Controllers\\Student\\VerifyEmailController;\r\nuse Illuminate\\Support\\Facades\\Route;\r\n\r\nRoute::prefix('student')-&gt;name('student.')-&gt;group(function () {\r\n\r\n    Route::middleware('guest:student')-&gt;group(function () {\r\n        Route::get('register', [RegisteredUserController::class, 'create'])\r\n            -&gt;name('register');\r\n\r\n        Route::post('register', [RegisteredUserController::class, 'store']);\r\n\r\n        Route::get('login', [AuthenticatedSessionController::class, 'create'])\r\n            -&gt;name('login');\r\n\r\n        Route::post('login', [AuthenticatedSessionController::class, 'store']);\r\n\r\n        Route::get('forgot-password', [PasswordResetLinkController::class, 'create'])\r\n            -&gt;name('password.request');\r\n\r\n        Route::post('forgot-password', [PasswordResetLinkController::class, 'store'])\r\n            -&gt;name('password.email');\r\n\r\n        Route::get('reset-password\/{token}', [NewPasswordController::class, 'create'])\r\n            -&gt;name('password.reset');\r\n\r\n        Route::post('reset-password', [NewPasswordController::class, 'store'])\r\n            -&gt;name('password.store');\r\n    });\r\n\r\n    Route::middleware('auth:student')-&gt;group(function () {\r\n        Route::get('verify-email', EmailVerificationPromptController::class)\r\n            -&gt;name('verification.notice');\r\n\r\n        Route::get('verify-email\/{id}\/{hash}', VerifyEmailController::class)\r\n            -&gt;middleware(['signed', 'throttle:6,1'])\r\n            -&gt;name('verification.verify');\r\n\r\n        Route::post('email\/verification-notification', [EmailVerificationNotificationController::class, 'store'])\r\n            -&gt;middleware('throttle:6,1')\r\n            -&gt;name('verification.send');\r\n\r\n        Route::get('confirm-password', [ConfirmablePasswordController::class, 'show'])\r\n            -&gt;name('password.confirm');\r\n\r\n        Route::post('confirm-password', [ConfirmablePasswordController::class, 'store']);\r\n\r\n        Route::put('password', [PasswordController::class, 'update'])-&gt;name('password.update');\r\n\r\n        Route::post('logout', [AuthenticatedSessionController::class, 'destroy'])\r\n            -&gt;name('logout');\r\n\r\n        Route::middleware('verified_for_multi_auth')-&gt;group(function () {\r\n\r\n            Route::get('dashboard', function () {\r\n                return view('student.dashboard');\r\n            })-&gt;name('dashboard');\r\n\r\n        });\r\n    });\r\n\r\n});\r\n<\/strong><\/pre>\n<p><strong>routes\/web.php<\/strong><\/p>\n<pre>\/\/ \u7701\u7565\r\n\r\nrequire __DIR__.'\/auth.php';\r\n<strong>require __DIR__.'\/student.php'; \/\/ \ud83d\udc48 \u3053\u3053\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f\r\n<\/strong><\/pre>\n<p>\u306a\u304a\u3001\u3082\u3057\u521d\u671f\u72b6\u614b\u306euser\u3092\u4f7f\u3063\u305f\u30ed\u30b0\u30a4\u30f3\u7b49\u304c\u4e0d\u8981\u306e\u5834\u5408\u306f\u3001<\/p>\n<pre><strong>require __DIR__.'\/auth.php';<\/strong><\/pre>\n<p>\u306e\u90e8\u5206\u3092\u30b3\u30e1\u30f3\u30c8\u30a2\u30a6\u30c8\u3084\u524a\u9664\u3057\u3066\u3082\u3044\u3044\u3067\u3057\u3087\u3046\u3002<\/p>\n<h1>\u30c6\u30b9\u30c8\u3057\u3066\u307f\u308b<\/h1>\n<p>\u4eca\u56de\u306e\u5b9f\u884c\u7d50\u679c\u306f<code>Laravel Breeze<\/code>\u3068\u540c\u3058\u306a\u306e\u3067\u30c6\u30b9\u30c8\u306f\u7701\u7565\u3057\u307e\u3059\uff08\u6587\u7ae0\u9577\u304f\u3066\u3061\u3087\u3063\u3068\u75b2\u308c\u307e\u3057\u305f\u3057\u306d\ud83d\ude02\uff09<\/p>\n<h1>\u4f01\u696d\u69d8\u3078\u306e\u3054\u63d0\u6848<\/h1>\n<p><code>Laravel<\/code>\u306e\u69cb\u6210\u3092\u6839\u672c\u304b\u3089\u5229\u7528\u3059\u308b\u3059\u308b\u3068\u3001<code>Multi Auth<\/code>\u3060\u3051\u3067\u306a\u304f\u3044\u308d\u3044\u308d\u306a\u6539\u9020\u3092\u65bd\u3059\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n<p>\u3082\u3057\u305d\u3046\u3044\u3063\u305f\u6a5f\u80fd\u3092\u3054\u5e0c\u671b\u3067\u3057\u305f\u3089\u3044\u3064\u3067\u3082\u304a\u6c17\u8efd\u306b\u304a\u554f\u3044\u5408\u308f\u305b\u304b\u3089\u3054\u76f8\u8ac7\u304f\u3060\u3055\u3044\u3002<\/p>\n<p>\u304a\u5f85\u3061\u3057\u3066\u304a\u308a\u307e\u3059\u3002\ud83d\ude04\u2728<\/p>\n<h1>\u304a\u308f\u308a\u306b<\/h1>\n<p>\u3068\u3044\u3046\u3053\u3068\u3067\u4eca\u56de\u306f<code>Laravel Breeze<\/code>\u306e\u6a5f\u80fd\u3092\u30d5\u30eb\u306b\u6d3b\u304b\u3057\u306a\u304c\u3089<code>Multi Auth<\/code>\u3092\u5b9f\u88c5\u3057\u3066\u307f\u307e\u3057\u305f\u3002<\/p>\n<p>\u3068\u306f\u3044\u3048\u3001\u4eca\u56de\u306f\u53d6\u308a\u6271\u308f\u306a\u304b\u3063\u305f\u3067\u3059\u304c\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u6a5f\u80fd\u3082\u3042\u308b\u307f\u305f\u3044\u3067\u3059\u306e\u3067\u3001\u307e\u305f\u6a5f\u4f1a\u304c\u3042\u3063\u305f\u3089\u3084\u3063\u3066\u307f\u305f\u3044\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n<ul>\n<li>\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u5165\u529b\u3057\u306a\u3044\u3068\u30a2\u30af\u30bb\u30b9\u3067\u304d\u306a\u3044\u30da\u30fc\u30b8\u3092\u3064\u304f\u308b<\/li>\n<li>\u30d1\u30b9\u30ef\u30fc\u30c9\u306e\u5909\u66f4<\/li>\n<\/ul>\n<p><code>Laravel Breeze<\/code>\u3063\u3066\u6a5f\u80fd\u591a\u3059\u304e\u3067\u3059\u306d\uff08\u7b11\uff09<\/p>\n<p>\u4f5c\u8005\u3055\u3093\u306b\u306f\u611f\u8b1d\u3057\u3066\u3044\u307e\u3059\ud83d\ude04\u2728<\/p>\n<p>\u307e\u305f\u3001\u7d42\u308f\u3063\u3066\u307f\u3066\u304b\u3089\u601d\u3044\u3064\u3044\u305f\u306e\u3067\u3059\u304c\u3001<code>Multi Auth<\/code>\u306b\u5bfe\u5fdc\u3057\u305f<code>stub<\/code>\u3092\u4f5c\u3063\u3066\u304a\u3051\u3070\u697d\u304b\u3082\u3067\u3059\u306d\u3002<\/p>\n<p>\u307f\u306a\u3055\u3093\u3082\u3001\u305c\u3072\u3044\u308d\u3044\u308d\u3068\u6539\u9020\u3057\u3066\u307f\u3066\u304f\u3060\u3055\u3044\u306d\u3002<\/p>\n<p>\u3067\u306f\u3067\u306f\u301c\u2757<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-6068 aligncenter\" src=\"https:\/\/blog.capilano-fw.com\/wp-content\/uploads\/2020\/03\/no_12.png\" alt=\"\" width=\"226\" height=\"320\" srcset=\"https:\/\/blog.capilano-fw.com\/wp-content\/uploads\/2020\/03\/no_12.png 226w, https:\/\/blog.capilano-fw.com\/wp-content\/uploads\/2020\/03\/no_12-212x300.png 212w\" sizes=\"auto, (max-width: 226px) 100vw, 226px\" \/>\u300c\u9b3c\u6ec5\u306e\u5203\u307f\u305f\u3044\u306b<br \/>\n\u771f\u3093\u4e2d\u3067\u5272\u308c\u305f\u77f3\u3001<br \/>\n\u30ab\u30c3\u30b3\u3088\u304b\u3063\u305f\u3067\u3059\ud83d\udc4d\u300d<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u3055\u3066\u3055\u3066\u3001Laravel\u958b\u767a\u3092\u3057\u305f\u3053\u3068\u304c\u3042\u308b\u4eba\u306a\u3089\u8ab0\u3067\u3082\u805e\u3044\u305f\u3053\u3068\u304c\u3042\u308b\u30d1\u30c3\u30b1\u30fc\u30b8\u304c\u300cLaravel Breeze\u300d\u3058\u3083\u306a\u3044\u3067\u3057\u3087\u3046\u304b\u3002 \u3053\u308c\u306f\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u6a5f\u80fd &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/blog.capilano-fw.com\/?p=11802\" class=\"more-link\"><span class=\"screen-reader-text\">&#8220;Laravel Breeze\uff1a Multi Auth \u3057\u306a\u304c\u3089\u30ed\u30b0\u30a4\u30f3\u30fb\u767b\u9332\u30fb\u30d1\u30b9\u30ef\u30fc\u30c9\u518d\u767a\u884c\u30fbEmail Verification \u306b\u5bfe\u5fdc\u3055\u305b\u308b&#8221; \u306e<\/span>\u7d9a\u304d\u3092\u8aad\u3080<\/a><\/p>\n","protected":false},"author":1,"featured_media":11820,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-11802","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel"],"_links":{"self":[{"href":"https:\/\/blog.capilano-fw.com\/index.php?rest_route=\/wp\/v2\/posts\/11802","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.capilano-fw.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.capilano-fw.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.capilano-fw.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.capilano-fw.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=11802"}],"version-history":[{"count":18,"href":"https:\/\/blog.capilano-fw.com\/index.php?rest_route=\/wp\/v2\/posts\/11802\/revisions"}],"predecessor-version":[{"id":11823,"href":"https:\/\/blog.capilano-fw.com\/index.php?rest_route=\/wp\/v2\/posts\/11802\/revisions\/11823"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.capilano-fw.com\/index.php?rest_route=\/wp\/v2\/media\/11820"}],"wp:attachment":[{"href":"https:\/\/blog.capilano-fw.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=11802"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.capilano-fw.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=11802"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.capilano-fw.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=11802"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}