前提・事実
laravel6で会員登録時のメール確認を実装しています
readoubleによるとEmail Verificationに必要なemail_verified_atカラムはマイグレーションを行うことであらかじめ作成されます
migrationのファイルを以下に示しますが、varification_tokenのようなメール確認用トークンのカラムが見当たりません
php:
1public function up() 2 { 3 Schema::create('users', function (Blueprint $table) { 4 $table->id(); 5 $table->string('name'); 6 $table->string('email')->unique(); 7 $table->timestamp('email_verified_at')->nullable(); 8 $table->string('password'); 9 $table->rememberToken(); 10 $table->timestamps(); 11 }); 12 }
質問1
laravelのメール確認について、私は以下のように考えていたのですが、正しいですか?
間違っていたら教えてください
0. 会員登録する(仮登録)
0. 期限付きトークンを生成してtokenカラムに保存
0. emailとtokenの情報を含んだURLを送る
0. 送られたURLへアクセスする
0. アクセスがあったURLの情報からemailとtokenを照合
0. 登録完了
質問2
tokenがなければ、emailの情報を含んだURLでアクセスするだけでメール確認が行えるように思えます
なぜtokenカラムを用意しなくてもメール確認ができるのですか?
メール確認ができる仕組みを教えてください
> laravel5.6まではusersテーブルにverifiedカラムやverification_tokenを用意してメール確認を行っていたようですが、5.7からはemail_verified_atカラムだけになっています
そんなことあったっけ?と思って、実際にインストールして、migrationファイルを調べましたが、5.6から変わったという事実を確認できませんでした。
認識に相違がないかを今一度ご確認ください。
表現が不十分で失礼しました
5.6まではlaravel側で用意しているのではなく、自分でverifiedやtokenカラムをusersテーブルに追加して、
RegisterControllerなどを変更して実装していたそうです
こちらでも確認してみましたが、5.7からはemail_verified_atが追加されています
公式ドキュメント(https://laravel.com/docs/5.7)にEmail Verificationの項目があるのは5.7からでした
以下の記事を参考にしました
https://qiita.com/nitaking/items/588a645968efcac6d37a
https://blog.capilano-fw.com/?p=449
参考ページの記事が間違ってるわ
回答2件
あなたの回答
tips
プレビュー