Laravel8.xでBreezeを利用したメール認証の実装で見落としていたこと
目的
- Laravel8.xにおいて,認証のスターターキットとしてBreezeを導入した。
- メール認証機能を追加しようと思ったが,うまくいかなかった。
- 試行錯誤してうまくいった方法と,その理由をこの記事に供養します。
前提
- 以下のコードでBreezeをLaravelプロジェクトに導入していること.
- 以下の環境です。MAMPでサーバーを立ち上げています。
- 以下のコードでBreezeをLaravelプロジェクトに導入していること.
- 以下の環境です。MAMPでサーバーを立ち上げています。
ハードウェア | OS |
---|---|
macbookAir2020(Intel) | BigSur 11.3 Beta |
項目 | バージョン |
---|---|
PHP | 7.4.2 |
Laravel | 8.29.0 |
MySQL | 5.7.26 |
MAMP | - |
console
$ curl -s https://laravel.build/example-app | bash
$ cd example-app
$ php artisan migrate
$ composer require laravel/breeze --dev
$ php artisan breeze:install
$ npm install
$ npm run dev
方法
以下では,Breezeを用いてメール認証をする方法を記載します。
Userの変更
モデルUserに Illuminate\Contracts\Auth\MustVerifyEmail を追加する
app\Models\User.php
+ use Illuminate\Contracts\Auth\MustVerifyEmail;
- class User extends Authenticatable
{
...
}
+ class User extends Authenticatable implements MustVerifyEmail
{
...
}
ルーティングの変更
ここが他記事と異なる部分です。Laravel/uiを用いている場合は
routes/web.php
+ Auth::routes(["verify"=>true]);
とすればいいところなのですが,Breezeの場合は
routes/web.php
Route::get('/dashboard', function () {
return view('dashboard');
})->middleware(['auth', 'verified'])->name('dashboard');
となります。というのも,Breezeの場合はLaravel/UIをインストールしていないためです。
参考文献
https://qiita.com/nekyo/items/03e50b4d0dd6f09287d6
https://dev.to/dendihandian/laravel-email-verification-3lfa
Author And Source
この問題について(Laravel8.xでBreezeを利用したメール認証の実装で見落としていたこと), 我々は、より多くの情報をここで見つけました https://qiita.com/leonyaochi/items/b1e1b6bb73143bddd114著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .