diff --git a/app/Http/Controllers/HomeController.php b/app/Http/Controllers/HomeController.php
index 7675e93..dbaf3e2 100644
--- a/app/Http/Controllers/HomeController.php
+++ b/app/Http/Controllers/HomeController.php
@@ -8,6 +8,6 @@ class HomeController extends Controller
{
public function __invoke() // * Controlador con un unico metodo se usa __invoke
{
- return view('home');
+ return view('welcome');
}
}
diff --git a/app/Http/Controllers/LoginController.php b/app/Http/Controllers/LoginController.php
new file mode 100644
index 0000000..d198e28
--- /dev/null
+++ b/app/Http/Controllers/LoginController.php
@@ -0,0 +1,28 @@
+validate([
+ 'email' => ['required', 'email'],
+ 'password' => ['required'],
+ ]);
+
+ if (Auth::attempt($credentials)) {
+ $request->session()->regenerate();
+
+ return redirect()->intended('dashboard');
+ }
+
+ return back()->withErrors([
+ 'email' => 'Los datos no coinciden.',
+ ])->onlyInput('email');
+ }
+}
diff --git a/app/Http/Controllers/RegisterController.php b/app/Http/Controllers/RegisterController.php
new file mode 100644
index 0000000..7dc5bde
--- /dev/null
+++ b/app/Http/Controllers/RegisterController.php
@@ -0,0 +1,29 @@
+validate([
+ 'name' => ['required', 'string'],
+ 'email' => ['required', 'email'],
+ 'password' => ['required', 'confirmed']
+ ]);
+
+ $userData['password'] = bcrypt($userData['password']);
+
+ $user = User::create($userData);
+
+ Auth::login($user);
+
+ return redirect()->route('dashboard');
+
+ }
+}
diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php
index 195c54c..db087de 100644
--- a/database/seeders/DatabaseSeeder.php
+++ b/database/seeders/DatabaseSeeder.php
@@ -14,12 +14,14 @@ class DatabaseSeeder extends Seeder
*/
public function run(): void
{
- // User::factory(10)->create();
+ User::factory(10)->create();
User::factory()->create([
- 'name' => 'Test User',
- 'email' => 'test@example.com',
+ 'name' => 'admin',
+ 'email' => 'admin@laravel.com',
+ 'password' => 'admin'
]);
+
Product::factory(50)->create();
}
}
diff --git a/resources/views/dashboard.blade.php b/resources/views/dashboard.blade.php
new file mode 100644
index 0000000..1b0b21e
--- /dev/null
+++ b/resources/views/dashboard.blade.php
@@ -0,0 +1,6 @@
+
+
BIENVENIDO {{Auth::user()->name}}
+
diff --git a/resources/views/home.blade.php b/resources/views/home.blade.php
deleted file mode 100644
index 6e824c4..0000000
--- a/resources/views/home.blade.php
+++ /dev/null
@@ -1,4 +0,0 @@
-
- Lauck - Home
- Bienvenido
-
\ No newline at end of file
diff --git a/resources/views/login.blade.php b/resources/views/login.blade.php
new file mode 100644
index 0000000..d207a3f
--- /dev/null
+++ b/resources/views/login.blade.php
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+ Bicicletería Lauck - Inicio de sesión
+
+
+
+
+
+
+
+
+ Bicicletería Lauck
+
+
+
+
+
+
+
+
+
diff --git a/resources/views/register.blade.php b/resources/views/register.blade.php
new file mode 100644
index 0000000..4cc5c48
--- /dev/null
+++ b/resources/views/register.blade.php
@@ -0,0 +1,56 @@
+
+
+
+
+
+ Bicicletería Lauck - Registro
+
+
+
+
+
+
+
+ Bicicletería Lauck
+
+
+
+
+
Registrarse
+
Por favor completá el formulario para crear una cuenta.
+
+
+
+
+
+
+
diff --git a/resources/views/welcome.blade.php b/resources/views/welcome.blade.php
index 522d79b..413c46b 100644
--- a/resources/views/welcome.blade.php
+++ b/resources/views/welcome.blade.php
@@ -1,275 +1,20 @@
-
-
-
-
-
- Laravel
-
-
-
-
-
-
- @if (file_exists(public_path('build/manifest.json')) || file_exists(public_path('hot')))
- @vite(['resources/css/app.css', 'resources/js/app.js'])
- @else
-
- @endif
-
-
-
- @if (Route::has('login'))
-
- @endif
-
-
-
-
-
Let's get started
-
Laravel has an incredibly rich ecosystem.
We suggest starting with the following.
-
-
-
-
- {{-- Laravel Logo --}}
-
-
- {{-- Light Mode 12 SVG --}}
-
-
- {{-- Dark Mode 12 SVG --}}
-
-
-
-
+
+
+
+
+
+
Laravel 12
+
+
+
+
-
- @if (Route::has('login'))
-
- @endif
-
+
+
diff --git a/routes/web.php b/routes/web.php
index 3a70505..942d0a0 100644
--- a/routes/web.php
+++ b/routes/web.php
@@ -1,11 +1,34 @@
name('login');
-Route::get('/',HomeController::class)->name('home');
+Route::post('login', LoginController::class)->name('login.attempt');
+
+Route::view('dashboard', 'dashboard')->name('dashboard');
+
+Route::post('logout', function(){
+ Auth::guard('web')->logout();
+
+ Session::invalidate();
+ Session::regenerateToken();
+
+ return redirect('/');
+})->name('logout');
+
+Route::view('register', 'register')->name('register');
+Route::post('register', RegisterController::class)->name('register.store');
Route::get('/productos',[ProductosController::class,'index'])->name('productos.index');
Route::get('/productos/create',[ProductosController::class,'create'])->name('productos.create');