ユーザーが自分のパスワードを忘れてしまった場合、再設定できるようにします。
メールアドレスを入力するとパスワードを再設定するためのリンクが書かれたメールが送信されます。ユーザーがリンクをクリックして新しいパスワードを入力すればパスワードの再設定ができます。
実はこれは難しいことではありません。以下の方法で簡単にできます。
プロジェクトのフォルダのなかに.envというファイルがあります。そのなかに以下のような部分があります。
.env
1 2 3 4 5 6 7 8 |
MAIL_MAILER=smtp MAIL_HOST=mailhog MAIL_PORT=1025 MAIL_USERNAME=null MAIL_PASSWORD=null MAIL_ENCRYPTION=null MAIL_FROM_ADDRESS="hello@example.com" MAIL_FROM_NAME="${APP_NAME}" |
これを以下のように書き換えます。これはエックスサーバーからパスワードを再設定するためのメールを送信する場合です。
.env
1 2 3 4 5 6 7 8 |
MAIL_DRIVER=smtp MAIL_HOST=sv3062.xserver.jp MAIL_PORT=465 MAIL_USERNAME=XXX@lets-csharp.com(メール送信元) MAIL_PASSWORD=エックスメールにログインするときのパスワード MAIL_ENCRYPTION=ssl MAIL_FROM_ADDRESS=XXX@lets-csharp.com(メール送信元) MAIL_FROM_NAME="${APP_NAME}"(メール送信者名) |
これでログインページにある Forgot Your Password? のリンクをクリックするとパスワードを再設定するためのメールが送信されるようになります。
ただレイアウト的にパッとしないのでテンプレートを編集します。
プロジェクトのフォルダ\resources\views\authのなかには
1 2 3 |
login.blade.php register.blade.php verify.blade.php |
プロジェクトのフォルダ\resources\views\auth\passwordsのなかには
1 2 3 |
confirm.blade.php email.blade.php reset.blade.php |
という名前のファイルが存在しますが、これを編集します。
1 |
@extends('layouts.app') |
と書かれている部分を
1 2 3 4 5 6 |
@extends('layout') @section('page-title') <!-- 各ページに適したタイトルをつける --> <title>ログイン|鳩でもわかるLaravel</title> @endsection |
とするとレイアウトに一貫性がうまれて違和感がなくなります。