Laravel 5.3 验证方法实现/覆盖

Laravel 5.3 auth methods implementation / overwriting

在 Laravel 5.3 中哪些 类 和哪些方法负责默认用户登录/注销/注册和密码重置功能?我在哪里可以找到它?我想修改默认的redirectPath,成功后的flash messages e.t.c

在Laravel 5.3中app\Http\Controllers\Auth中的控制器很少:

LoginController
RegisterController
ResetPasswordController
ChangePasswordController
ForgotPasswordController

您可以安全地覆盖这些控制器中的默认身份验证方法。您要覆盖的确切方法取决于您的需要。例如,如果您需要根据用户的角色重定向用户,则需要通过在 LoginController.

中创建和修改它来覆盖 sendLoginResponse() 方法

我相信这些是您正在寻找的正确控制器和方法。请记住,大多数或所有方法都不是直接在各自的控制器中找到的,而是在这些控制器使用的特征内部。但它们很容易找到,方法是打开控制器并进入它使用的特征,或者只需在 PHPStorm 或任何其他 IDE 或编辑器中搜索方法的名称。

App\Http\Controllers\Auth\LoginController@showLoginForm
App\Http\Controllers\Auth\LoginController@login
App\Http\Controllers\Auth\LoginController@logout
App\Http\Controllers\Auth\ForgotPasswordController@sendResetLinkEmail
App\Http\Controllers\Auth\ForgotPasswordController@showLinkRequestForm
App\Http\Controllers\Auth\RegisterController@showRegistrationForm
App\Http\Controllers\Auth\RegisterController@register

例子

假设您要查找 showLoginForm() 方法。

  • 打开{root}/app/Http/Controllers/Auth/LoginController.php
  • 注意它使用了Illuminate\Foundation\Auth\AuthenticatesUsers
  • 打开Illuminate\Foundation\Auth\AuthenticatesUsers
  • 你看到的第一个方法应该是showLoginForm()
 /**
 * Show the application's login form.
 *
 * @return \Illuminate\Http\Response
 */
public function showLoginForm()
{
    return view('auth.login');
}