diff --git a/laravel/app/Http/Controllers/LoginController.php b/laravel/app/Http/Controllers/LoginController.php new file mode 100644 index 0000000..c832666 --- /dev/null +++ b/laravel/app/Http/Controllers/LoginController.php @@ -0,0 +1,24 @@ +validate([ + 'email' => 'required|email|string', + 'password' => 'required|string', + ]); + + if (Auth::attempt($credentials, $remember = false)) { + $request->session()->regenerate(); + return redirect('/profile'); + } + + return back()->withErrors([ + 'email' => 'The provided credentials do not match our records.', + ]); + } +} diff --git a/laravel/app/Http/Controllers/RegisterController.php b/laravel/app/Http/Controllers/RegisterController.php index 170d905..8fcf21f 100644 --- a/laravel/app/Http/Controllers/RegisterController.php +++ b/laravel/app/Http/Controllers/RegisterController.php @@ -17,7 +17,9 @@ class RegisterController extends Controller { $user = User::create($data); - return redirect('/'); + auth()->login($user); + + return redirect('/profile'); } catch (ValidationException $e) { return redirect()->back()->withInput($request->input())->withErrors($e->errors()); } diff --git a/laravel/resources/views/login.blade.php b/laravel/resources/views/login.blade.php new file mode 100644 index 0000000..39d68a8 --- /dev/null +++ b/laravel/resources/views/login.blade.php @@ -0,0 +1,18 @@ +@extends('default') + +@section('title') + Log In +@endsection + +@section('content') +

Log In

+
+ @csrf + + + + + +
+
{{ $errors->first() }}
+@endsection \ No newline at end of file diff --git a/laravel/resources/views/profile.blade.php b/laravel/resources/views/profile.blade.php new file mode 100644 index 0000000..457af28 --- /dev/null +++ b/laravel/resources/views/profile.blade.php @@ -0,0 +1,12 @@ +@extends('default') + +@section('title') + Profile +@endsection + +@section('content') +

Profile

+

Username: {{ Auth::user()->name }}

+

Email: {{ Auth::user()->email }}

+

Created at: {{ Auth::user()->created_at }}

+@endsection \ No newline at end of file diff --git a/laravel/routes/web.php b/laravel/routes/web.php index e461ea6..0bda2d9 100644 --- a/laravel/routes/web.php +++ b/laravel/routes/web.php @@ -2,6 +2,7 @@ use Illuminate\Support\Facades\Route; use App\Http\Controllers\RegisterController; +use App\Http\Controllers\LoginController; Route::get('/', function () { return view('welcome'); @@ -10,4 +11,23 @@ Route::get('/', function () { Route::get('/register', function () { return view('register'); }); -Route::post('/register', [RegisterController::class, 'create']); \ No newline at end of file + +Route::post('/register', [RegisterController::class, 'create']); + +Route::get('/login', function () { + return view('login'); +}); + +Route::post('/login', [LoginController::class, 'login']); + +Route::get('/logout', function () { + auth()->logout(); + return redirect('/'); +}); + +Route::get('/profile', function () { + if (!auth()->check()) { + return redirect('/'); + } + return view('profile'); +}); \ No newline at end of file