Просмотр исходного кода

Merge branch 'login' of tyson/Ideas into master

tyson 1 год назад
Родитель
Сommit
28022719ba

+ 29 - 0
app/Http/Controllers/AuthController.php

@@ -28,4 +28,33 @@ class AuthController extends Controller
         ]);
         return redirect()->route('ideas.index')->with('success', 'Registration successful!')->withInput();
     }
+
+    public function login(Request $request)
+    {
+        return view('auth.login');
+    }
+
+    public function authenticate(Request $request)
+    {
+        $validated = request()->validate([
+            'email' => 'required|email',
+            'password' => 'required|min:5|max:40'
+
+        ]);
+
+        if(auth()->attempt($validated))
+        {
+            $request->session()->regenerate();
+            return redirect()->route('ideas.index')->with('success', 'Login successful!');
+        }
+        return redirect()->route('ideas,login')->withErrors(['email' => 'Wrong email or password.']);
+    }
+
+    public function logout(Request $request)
+    {
+        auth()->logout();
+        $request->session()->invalidate();
+        $request->session()->regenerateToken();
+        return redirect()->route('ideas.index')->with('success', 'Logout successful!');
+    }
 }

+ 35 - 0
resources/views/auth/login.blade.php

@@ -0,0 +1,35 @@
+@extends('shared.layout.layout')
+@section('content')
+    <div class="container">
+        <div class="row justify-content-center">
+            <div class="col-12 col-sm-8 col-md-6">
+                <form class="form mt-5" action="{{route('login')}}" method="post">
+                    @csrf
+                    <h3 class="text-center text-dark">Login</h3>
+
+                    <div class="form-group mt-3">
+                        <label for="email" class="text-dark">Email:</label><br>
+                        <input type="email" name="email" id="email" class="form-control" value="{{request()->old('email')}}">
+                        @error('email')
+                        <span class="d-block fs-2 text-danger mt-2">{{$message}}</span>
+                        @enderror
+                    </div>
+                    <div class="form-group mt-3">
+                        <label for="password" class="text-dark">Password:</label><br>
+                        <input type="password" name="password" id="password" class="form-control">
+                        @error('password')
+                        <span class="d-block fs-2 text-danger mt-2">{{$message}}</span>
+                        @enderror
+                    </div>
+                    <div class="form-group">
+                        <label for="remember-me" class="text-dark"></label><br>
+                        <input type="submit" name="submit" class="btn btn-dark btn-md" value="submit">
+                    </div>
+                    <div class="text-right mt-2">
+                        <a href="/register" class="text-dark">Register here</a>
+                    </div>
+                </form>
+            </div>
+        </div>
+    </div>
+@endsection

+ 13 - 3
resources/views/shared/layout/nav.blade.php

@@ -8,15 +8,25 @@
         </button>
         <div class="collapse navbar-collapse justify-content-end" id="navbarNav">
             <ul class="navbar-nav">
+                @guest()
                 <li class="nav-item">
                     <a class="nav-link active" aria-current="page" href="/login">Login</a>
                 </li>
                 <li class="nav-item">
                     <a class="nav-link" href="/register">Register</a>
                 </li>
-                <li class="nav-item">
-                    <a class="nav-link" href="/profile">Profile</a>
-                </li>
+                @endguest
+                @auth()
+                    <li class="nav-item">
+                        <a class="nav-link" href="/profile">{{Auth::user()->email}}</a>
+                    </li>
+                    <li class="nav-item">
+                        <form action="{{route('logout')}}" method="post">
+                            @csrf
+                            <button class="nav-link" type="submit">Logout</button>
+                        </form>
+                    </li>
+                @endauth
             </ul>
         </div>
     </div>

+ 6 - 0
routes/web.php

@@ -29,6 +29,12 @@ Route::get('/register', [\App\Http\Controllers\AuthController::class, 'register'
 
 Route::post('/register', [\App\Http\Controllers\AuthController::class, 'store']);
 
+Route::get('/login', [\App\Http\Controllers\AuthController::class, 'login'])->name('login');
+
+Route::post('/login', [\App\Http\Controllers\AuthController::class, 'authenticate']);
+
+Route::post('/logout', [\App\Http\Controllers\AuthController::class, 'logout'])->name('logout');
+
 
 Route::delete('/ideas/{idea}', [\App\Http\Controllers\IdeaController::class, 'destroy'])->name('ideas.destroy');