メール認証
- データベースに関するメモ
- 電子メール検証フィールド
- 保護されたルート
- #メール認証後
電子メールの検証
はじめに
多くの Web アプリケーションでは、ユーザーは使用する前に電子メール アドレスを入力する必要があります。 。すべてのアプリケーションで繰り返し実装することを強制するのではなく、Laravel は電子メール認証リクエストを送信および検証するための便利な方法を提供します。
モデルの準備
開始する前に、
App\User
モデルがIlluminate\Contracts\Auth\MustVerifyEmail
コントラクトを実装しているかどうかを確認する必要があります。 :<?php namespace App; use Illuminate\Notifications\Notifiable; use Illuminate\Contracts\Auth\MustVerifyEmail; use Illuminate\Foundation\Auth\User as Authenticatable; class User extends Authenticatable implements MustVerifyEmail{ use Notifiable; // ... }
データベース ノート
電子メール検証フィールド
次に、
user
のニーズに次のものが含まれます。email_verified_at
フィールドには、電子メール アドレスが検証された時刻が保存されます。デフォルトでは、Laravel フレームワークのusers
テーブルのデータ移行には、このフィールドがすでに含まれています。したがって、必要なのはデータベースの移行を実行することだけです。php artisan migrate
Routing
Laravel の
Auth\VerificationController
クラス検証リンクと検証電子メールを送信するために必要なロジックが含まれています。verify
オプションをAuth::routes
メソッドに渡すことで、このコントローラーに必要なルートを登録できます:Auth::routes(['verify' => true]);
#ルートの保護ルーティング ミドルウェアを使用すると、認証されたユーザーのみに指定されたルートへのアクセスを許可できます。 Laravel には、verified
ミドルウェアが付属しており、
Illuminate\Auth\Middleware\EnsureEmailIsVerifiedで定義されています。このミドルウェアはアプリケーションの HTTP コアにすでに登録されているため、必要なのはルート定義にミドルウェアをアタッチすることだけです:
Route::get('profile', function () { // Only verified users may enter... })->middleware('verified');
ViewLaravel は、make:auth
コマンドを実行すると、メール検証に必要なビュー ファイルを生成します。ビュー ファイルの場所は、
resources/views/auth/verify.blade.php ## です。 # 、アプリケーションに応じてこれらのビューのスタイルを自由に調整できます。メール認証後、ユーザーは自動的に
/homeにリダイレクトされます。
VerificationController
でredirectTo
メソッドまたは属性を定義することで、認証後のジャンプ位置を調整できます。protected $redirectTo = '/dashboard';
Laravel は検証プロセス中にイベントをトリガーできます。
EventServiceProviderにリスナーを登録する必要があります:
LearnKu.com
この記事は、/** * 应用程序的事件监听器 * * @var array */ protected $listen = [ 'Illuminate\Auth\Events\Verified' => [ 'App\Listeners\LogVerifiedUser', ], ];