LoginSignup
3
4

More than 5 years have passed since last update.

Laravel 5.3 パスワードリセット後にログイン画面にリダイレクトする

Posted at

概要

  • Laravel5.3のmake:authで自動生成されるパスワードリセットの処理を修正する

目的

  • パスワードリセット時にログインさせずにログイン画面にリダイレクト

手順

  • ResetPasswordControllerの内容を修正する

やったこと

  • ResetPasswordControllerで使われてるResetsPasswordsを継承したクラスを使う
    • traitのメソッドをオーバーライドできないのでエラーが出る
  • 変更したい処理(ResetsPasswords)のメソッドをResetPasswordControllerに定義する
<?php

namespace App\Http\Controllers\Auth;

use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\ResetsPasswords;
use Illuminate\Support\Str;

class ResetPasswordController extends Controller
{
    /*
    |--------------------------------------------------------------------------
    | Password Reset Controller
    |--------------------------------------------------------------------------
    |
    | This controller is responsible for handling password reset requests
    | and uses a simple trait to include this behavior. You're free to
    | explore this trait and override any methods you wish to tweak.
    |
    */

    use ResetsPasswords;

    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('guest');
    }

    /* ResetsPasswordsのメソッドを定義する */
    protected function resetPassword($user, $password) {
        $user->forceFill([
            'password' => bcrypt($password),
            'remember_token' => Str::random(60),
        ])->save();

        return redirect('/login');
    }
}
  • 優先度的には親クラスのメソッド < trait < 定義してあるメソッド らしい
  • traitぱっと見わかりづらいけどうまく使えば便利そう
3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4