将recaptcha添加到默认的Laravel密码重置

Tom*_*las 3 change-password recaptcha laravel laravel-5 laravel-5.1

我想要求我的 Laravel 5.1 应用程序的用户完成 Google Recaptcha 过程,但我不知道如何安全地修改发送重置密码链接的代码。

为我执行此操作的代码是继承特征“ResetsPassword”中的“postEmail()”函数。这是我的整个 PasswordController:

use App\Http\Controllers\Controller;
use Illuminate\Contracts\Auth\Guard;
use Illuminate\Contracts\Auth\PasswordBroker;
use Illuminate\Foundation\Auth\ResetsPasswords;

class PasswordController extends Controller {

use ResetsPasswords;

/**
 * Create a new password controller instance.
 *
 * @param  \Illuminate\Contracts\Auth\Guard  $auth
 * @param  \Illuminate\Contracts\Auth\PasswordBroker  $passwords
 * @return void
 */
public function __construct(Guard $auth, PasswordBroker $passwords)
{
    $this->auth = $auth;
    $this->passwords = $passwords;

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

}
Run Code Online (Sandbox Code Playgroud)

如您所见,所有真正的方法都在供应商文件中的“ResetsPasswords”特征中,因此我不想直接修改它。如何在我的 PasswordsController 中安全地修改继承特征中的“postEmail()”函数?

kjd*_*n84 6

在您ForgotPasswordController添加此方法中:

protected function validateEmail(Request $request)
{
    $this->validate($request, [
        'email' => 'required|email',
        'g-recaptcha-response' => 'recaptcha',
    ]);
}
Run Code Online (Sandbox Code Playgroud)

并在此处按照我的 reCAPTCHA 实施指南进行操作:Laravel reCaptcha 集成