Laravel身份验证重置

时间:2018-08-31 17:39:26

标签: laravel passwords laravel-authentication

我很难根据laravel生成的令牌获取用户ID?我对framewrok不太熟悉,有人可以帮助我吗?

class ForgotPasswordController extends Controller
{
    use SendsPasswordResetEmails;

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

ResetPasswordController

class ResetPasswordController extends Controller
{

    use ResetsPasswords;

    protected $redirectTo = '/login';

    public function __construct()
    {

        $this->middleware('guest');
    }

    protected function guard()
    {
        return Auth::guard('user');
    }

    public function broker()
    {
        return Password::broker('users');
    }

    public function showResetForm(Request $request, $token = null)
    {
        var_dump($request->email);
        var_dump( $request->token);

        return view('auth.passwords.reset')->with(
            ['token' => $token, 'email' => $request->email]
        );
    }
}

如何更新密码?我只有通过电子邮件收到的令牌吗?

1 个答案:

答案 0 :(得分:0)

检查此步骤,以便您可以更好地了解laravel auth的工作原理。

  1. 通过以下方式生成身份验证支架:php artisan migrate
  2. 运行创建的迁移:php artisan route:list
  3. 使用make:auth检查您的路由列表,您可以看到在运行web.php命令时也创建了路由。
  4. 记下Auth路由正在调用的控制器和方法。
  5. 转到路线Auth::routes();文件。请参见ResetPasswordController,它会生成默认的Laravel Auth路由,如果不需要全部,请注释或删除此行并添加所需的行。
  6. 如果您记下了控制器和方法,则可以看到每条路线上的内容。在这种特殊情况下,我想您会在ResetsPasswords中使用vendor/laravel/framework/src/Illuminate/Foundation/Auth/ResetsPasswords.php的{​​{1}},在那里您可以看到resets方法,这是您必须要做的在您的ResetPasswordController上重写。