Commit 3b895bc6e46c32b7ba0fd3e41b229dc1846eaded

Authored by Joalisson Barros
Committed by GitHub
2 parents 1c642e1d adbed3db
Exists in 2.8 and in 2 other branches 2.6, 2.7

Merge pull request #8485 from portabilis/issue-282

Configura o throttle nos middlewares e login
app/Http/Controllers/Auth/LoginController.php
... ... @@ -9,6 +9,9 @@ use Illuminate\Http\Request;
9 9  
10 10 class LoginController extends Controller
11 11 {
  12 + protected int $maxAttempts = 2;
  13 + protected int $decayMinutes = 1;
  14 +
12 15 /*
13 16 |--------------------------------------------------------------------------
14 17 | Login Controller
... ...
app/Http/Kernel.php
... ... @@ -14,7 +14,6 @@ class Kernel extends HttpKernel
14 14 * @var array
15 15 */
16 16 protected $middleware = [
17   - // \App\Http\Middleware\TrustHosts::class,
18 17 \App\Http\Middleware\TrustProxies::class,
19 18 \Fruitcake\Cors\HandleCors::class,
20 19 \App\Http\Middleware\PreventRequestsDuringMaintenance::class,
... ... @@ -33,23 +32,22 @@ class Kernel extends HttpKernel
33 32 */
34 33 protected $middlewareGroups = [
35 34 'web' => [
36   - // \App\Http\Middleware\EncryptCookies::class,
37 35 \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
38 36 \Illuminate\Session\Middleware\StartSession::class,
39   - // \Illuminate\Session\Middleware\AuthenticateSession::class,
40 37 \Illuminate\View\Middleware\ShareErrorsFromSession::class,
41   - // \App\Http\Middleware\VerifyCsrfToken::class,
42 38 \Illuminate\Routing\Middleware\SubstituteBindings::class,
43 39 \App\Http\Middleware\SetLayoutVariables::class,
44 40 ],
45 41  
46 42 'api' => [
47 43 'bindings',
  44 + 'throttle:60,1',
48 45 ],
49 46  
50 47 'api:rest' => [
51 48 'bindings',
52 49 \App\Http\Middleware\CheckToken::class,
  50 + 'throttle:60,1',
53 51 ],
54 52 ];
55 53  
... ...
ieducar/intranet/styles/login.css
... ... @@ -78,6 +78,11 @@ button.submit {
78 78 cursor: pointer;
79 79 }
80 80  
  81 +button.submit:disabled {
  82 + background-color: #7f7d7d !important;
  83 + cursor: not-allowed !important;;
  84 +}
  85 +
81 86 #footer {
82 87 margin-top: 10px;
83 88 padding: 10px 0;
... ...
resources/stubs/base-test.php
... ... @@ -13,6 +13,7 @@ class BaseTestName extends TestCase
13 13  
14 14 public function testSuccessResponse()
15 15 {
  16 + $this->withoutMiddleware();
16 17 $this->get(self::ROUTE)->assertSuccessful();
17 18 }
18 19 }
... ...
resources/views/auth/login.blade.php
... ... @@ -14,7 +14,7 @@
14 14 <label for="password">Senha:</label>
15 15 <input type="password" name="password" id="password">
16 16  
17   - <button type="submit" class="submit">Entrar</button>
  17 + <button id="form-login-submit" type="submit" class="submit">Entrar</button>
18 18  
19 19 <div class="remember">
20 20 <a href="{{ route('password.request') }}">Esqueceu sua senha?</a>
... ...
resources/views/layout/breadcrumb.blade.php
1   -@if ($breadcrumb->getLegacy())
  1 +@if ($breadcrumb !== null && $breadcrumb->getLegacy())
2 2 {!! $breadcrumb->getLegacy() !!}
3   -@elseif ($breadcrumb->currentPage())
  3 +@elseif ($breadcrumb !== null && $breadcrumb->currentPage())
4 4 <div class="breadcrumb">
5 5 <a href="{{ route('home') }}" title="Ir para o Início">
6 6 <i class="fa fa-home" aria-hidden="true"></i><span> Início</span>
... ...
resources/views/layout/public.blade.php
... ... @@ -25,6 +25,16 @@
25 25 </script>
26 26 <!-- End Google Tag Manager -->
27 27  
  28 + @if($errors->count() && str_contains($errors->first(), 'errou a senha muitas vezes' ))
  29 + <script>
  30 + window.onload = function() {
  31 + document.getElementById("form-login-submit").disabled = true;
  32 + setTimeout(function () {
  33 + document.getElementById("form-login-submit").disabled = false;
  34 + }, 60000);
  35 + }
  36 + </script>
  37 + @endif
28 38 </head>
29 39  
30 40 <body>
... ...