質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

1278閲覧

Laravelでメール認証後に登録完了の画面をはさみたい

tomato01

総合スコア80

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2020/08/29 07:56

編集2020/08/29 07:59

Laravelで新規ユーザー登録時、メール認証機能を実装しました。
(下記のURLの記事を参考にしました。)

https://blog.capilano-fw.com/?p=1099
https://tac-blog.tech/index.php/2018/09/20/translate_japanese_emailverification/

現状でユーザーにメールが送られ、メール内のリンクをクリックすると、ユーザーはhome画面にログインすることができました。(処理:リンクをクリック時、usersテーブルの「email_verified_at」カラムにタイムスタンプが保存される)

但し、クリックするとすぐにhome画面にログインが完了してしまうので下記のように変更したいと考えております。

ユーザ登録フォーム入力

認証メール送付&リンクをクリック

本登録完了の画面を出す  ★ここの処理を加えたい

home画面入る(ログイン済み)

上記の処理を加える場合、どのファイルにどのようなルートを記載して行えばいいでしょうか。

//web.php Route::get('/', function () { return view('welcome'); }); Auth::routes(['verify' => true]); // ログイン後のホームページ Route::get('/home', 'HomeController@index')->middleware('verified'); Route::middleware('verified')->group(function() { // 本登録ユーザーだけ表示できるページ Route::get('verified', function(){ return '本登録が完了してます!'; }); });

尚、ユーザーに届くメールのリンクは下記のようになっていますがこの処理はどこのファイルで定義されているのでしょうか。

仕組みなども教えて頂けましたらとてもありがたいです。

https://URL/email/verify/1?expires=1598678084&signature=889d6d4a7889eb1482e73cc27a16424edaa12f66a265cba2603f4187d5068304

宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

php

1<?php 2 3namespace App\Http\Controllers\Auth; 4 5use App\Http\Controllers\Controller; 6use App\Providers\RouteServiceProvider; 7use Illuminate\Foundation\Auth\VerifiesEmails; 8 9class VerificationController extends Controller 10{ 11 /* 12 |-------------------------------------------------------------------------- 13 | Email Verification Controller 14 |-------------------------------------------------------------------------- 15 | 16 | This controller is responsible for handling email verification for any 17 | user that recently registered with the application. Emails may also 18 | be re-sent if the user didn't receive the original email message. 19 | 20 */ 21 22 use VerifiesEmails; 23 24 /** 25 * Where to redirect users after verification. 26 * 27 * @var string 28 */ 29 protected $redirectTo = RouteServiceProvider::HOME; // ここで定義されている 30 31 /** 32 * Create a new controller instance. 33 * 34 * @return void 35 */ 36 public function __construct() 37 { 38 $this->middleware('auth'); 39 $this->middleware('signed')->only('verify'); 40 $this->middleware('throttle:6,1')->only('verify', 'resend'); 41 } 42} 43

投稿2020/08/29 08:13

phper.k

総合スコア3923

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tomato01

2020/08/29 09:36

ご回答を頂きありがとうございます!ご指摘の箇所を自分が飛ばしたいリンクに変えることで変更ができました!ありがとうございます。ちなみに下記の部分は何をしているのか、もし教えて頂けましたらありがたいです。 public function __construct() { $this->middleware('auth'); $this->middleware('signed')->only('verify'); $this->middleware('throttle:6,1')->only('verify', 'resend'); }
phper.k

2020/08/29 10:06

質問するのも技術が必要ですね
phper.k

2020/08/29 10:08

聞く前に何を調べたのかを書くのは最初の質問だけじゃないです。 コメントでも同様です
tomato01

2020/08/29 11:07

ご指摘ありがとうございます。次回に質問する際はもう少し詳細に質問するようにします。ご忠告ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問