mirror of
https://github.com/BookStackApp/BookStack.git
synced 2025-04-24 04:33:06 +00:00
Added throttling to password reset requests
This commit is contained in:
parent
543ea6ef71
commit
ca764caf2d
3 changed files with 18 additions and 1 deletions
|
@ -70,6 +70,7 @@ return [
|
||||||
'email' => 'emails.password',
|
'email' => 'emails.password',
|
||||||
'table' => 'password_resets',
|
'table' => 'password_resets',
|
||||||
'expire' => 60,
|
'expire' => 60,
|
||||||
|
'throttle' => 60,
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
|
|
||||||
|
|
|
@ -56,7 +56,7 @@ class ForgotPasswordController extends Controller
|
||||||
$this->logActivity(ActivityType::AUTH_PASSWORD_RESET, $request->get('email'));
|
$this->logActivity(ActivityType::AUTH_PASSWORD_RESET, $request->get('email'));
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($response === Password::RESET_LINK_SENT || $response === Password::INVALID_USER) {
|
if (in_array($response, [Password::RESET_LINK_SENT, Password::INVALID_USER, Password::RESET_THROTTLED])) {
|
||||||
$message = trans('auth.reset_password_sent', ['email' => $request->get('email')]);
|
$message = trans('auth.reset_password_sent', ['email' => $request->get('email')]);
|
||||||
$this->showSuccessNotification($message);
|
$this->showSuccessNotification($message);
|
||||||
|
|
||||||
|
|
|
@ -282,6 +282,22 @@ class AuthTest extends TestCase
|
||||||
->assertElementContains('a', 'Sign up');
|
->assertElementContains('a', 'Sign up');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function test_reset_password_request_is_throttled()
|
||||||
|
{
|
||||||
|
$editor = $this->getEditor();
|
||||||
|
Notification::fake();
|
||||||
|
$this->get('/password/email');
|
||||||
|
$this->followingRedirects()->post('/password/email', [
|
||||||
|
'email' => $editor->email,
|
||||||
|
]);
|
||||||
|
|
||||||
|
$resp = $this->followingRedirects()->post('/password/email', [
|
||||||
|
'email' => $editor->email,
|
||||||
|
]);
|
||||||
|
Notification::assertTimesSent(1, ResetPassword::class);
|
||||||
|
$resp->assertSee('A password reset link will be sent to ' . $editor->email . ' if that email address is found in the system.');
|
||||||
|
}
|
||||||
|
|
||||||
public function test_login_redirects_to_initially_requested_url_correctly()
|
public function test_login_redirects_to_initially_requested_url_correctly()
|
||||||
{
|
{
|
||||||
config()->set('app.url', 'http://localhost');
|
config()->set('app.url', 'http://localhost');
|
||||||
|
|
Loading…
Add table
Reference in a new issue