diff --git a/resources/views/components/devdojoauth/heading.blade.php b/resources/views/components/devdojoauth/heading.blade.php
index 275aad0..7278f2a 100644
--- a/resources/views/components/devdojoauth/heading.blade.php
+++ b/resources/views/components/devdojoauth/heading.blade.php
@@ -3,4 +3,7 @@
{{ $text ?? '' }}
+ @if($description ?? false)
+ {{ $description ?? '' }}
+ @endif
\ No newline at end of file
diff --git a/resources/views/components/devdojoauth/logo.blade.php b/resources/views/components/devdojoauth/logo.blade.php
index 044fb24..16c9ea0 100644
--- a/resources/views/components/devdojoauth/logo.blade.php
+++ b/resources/views/components/devdojoauth/logo.blade.php
@@ -1 +1,2 @@
-
\ No newline at end of file
+
+{{-- --}}
\ No newline at end of file
diff --git a/resources/views/pages/auth/login.blade.php b/resources/views/pages/auth/login.blade.php
index 9db3915..283c3ab 100644
--- a/resources/views/pages/auth/login.blade.php
+++ b/resources/views/pages/auth/login.blade.php
@@ -3,26 +3,37 @@
use App\Models\User;
use Illuminate\Auth\Events\Login;
use function Laravel\Folio\{middleware, name};
-use function Livewire\Volt\{state, rules};
+use Livewire\Attributes\Validate;
+use Livewire\Volt\Component;
middleware(['guest']);
-state(['email' => '', 'password' => '', 'remember' => false]);
-rules(['email' => 'required|email', 'password' => 'required']);
name('auth.login');
-$authenticate = function(){
- $this->validate();
+new class extends Component
+{
+ #[Validate('required|email')]
+ public $email = '';
- if (!Auth::attempt(['email' => $this->email, 'password' => $this->password], $this->remember)) {
- $this->addError('email', trans('auth.failed'));
+ #[Validate('required')]
+ public $password = '';
- return;
- }
-
- event(new Login(auth()->guard('web'), User::where('email', $this->email)->first(), $this->remember));
+ public $remember = false;
+
+ public function authenticate()
+ {
+ $this->validate();
+
+ if (!Auth::attempt(['email' => $this->email, 'password' => $this->password], $this->remember)) {
+ $this->addError('email', trans('auth.failed'));
- return redirect()->intended('/');
-}
+ return;
+ }
+
+ event(new Login(auth()->guard('web'), User::where('email', $this->email)->first(), $this->remember));
+
+ return redirect()->intended('/');
+ }
+};
?>
diff --git a/resources/views/pages/auth/password/[token].blade.php b/resources/views/pages/auth/password/[token].blade.php
index 4e2b4c8..62df745 100644
--- a/resources/views/pages/auth/password/[token].blade.php
+++ b/resources/views/pages/auth/password/[token].blade.php
@@ -7,70 +7,79 @@
use Illuminate\Auth\Events\PasswordReset;
use function Laravel\Folio\name;
-use function Livewire\Volt\{state, rules, mount};
-state(['token', 'email', 'password', 'passwordConfirmation']);
-rules(['token' => 'required', 'email' => 'required|email', 'password' => 'required|min:8|same:passwordConfirmation']);
-name('auth.password.reset');
+use Livewire\Volt\Component;
+use Livewire\Attributes\Validate;
-mount(function ($token){
- $this->email = request()->query('email', '');
- $this->token = $token;
-});
+name('password.reset');
-$resetPassword = function(){
- $this->validate();
+new class extends Component
+{
+ #[Validate('required')]
+ public $token;
- $response = Password::broker()->reset(
- [
- 'token' => $this->token,
- 'email' => $this->email,
- 'password' => $this->password
- ],
- function ($user, $password) {
- $user->password = Hash::make($password);
+ #[Validate('required|email')]
+ public $email;
- $user->setRememberToken(Str::random(60));
+ #[Validate('required|min:8|same:passwordConfirmation')]
+ public $password;
+ public $passwordConfirmation;
- $user->save();
+ public function mount($token)
+ {
+ $this->email = request()->query('email', '');
+ $this->token = $token;
+ }
- event(new PasswordReset($user));
+ public function resetPassword()
+ {
+ $this->validate();
- Auth::guard()->login($user);
- }
- );
+ $response = Password::broker()->reset(
+ [
+ 'token' => $this->token,
+ 'email' => $this->email,
+ 'password' => $this->password,
+ ],
+ function ($user, $password) {
+ $user->password = Hash::make($password);
- if ($response == Password::PASSWORD_RESET) {
- session()->flash(trans($response));
+ $user->setRememberToken(Str::random(60));
- return redirect('/');
- }
+ $user->save();
+
+ event(new PasswordReset($user));
+
+ Auth::guard()->login($user);
+ },
+ );
- $this->addError('email', trans($response));
-}
+ if ($response == Password::PASSWORD_RESET) {
+ session()->flash(trans($response));
+
+ return redirect('/');
+ }
+
+ $this->addError('email', trans($response));
+ }
+};
?>
-
-
-
-
-
-
-
-
- @volt('auth.password.token')
-
- @endvolt
-
-
+
+
+
+ @volt('auth.password.token')
+
+ @endvolt
+
diff --git a/resources/views/pages/auth/password/confirm.blade.php b/resources/views/pages/auth/password/confirm.blade.php
index 654d7f2..a59710c 100644
--- a/resources/views/pages/auth/password/confirm.blade.php
+++ b/resources/views/pages/auth/password/confirm.blade.php
@@ -1,25 +1,33 @@
'']);
- rules(['password' => 'required|current_password']);
- name('auth.password.confirm');
+name('password.confirm');
- $confirm = function(){
+new class extends Component
+{
+ #[Validate('required|current_password')]
+ public $password = '';
+
+ public function confirm()
+ {
$this->validate();
session()->put('auth.password_confirmed_at', time());
return redirect()->intended('/');
- };
+ }
+};
+
?>
-
+
+ {{--
@@ -30,10 +38,9 @@
Please confirm your password before continuing
-
+
--}}
-
-
+
@volt('auth.password.confirm')
@endvolt
-
-
+
\ No newline at end of file
diff --git a/resources/views/pages/auth/password/reset.blade.php b/resources/views/pages/auth/password/reset.blade.php
index a31d4e1..d559693 100644
--- a/resources/views/pages/auth/password/reset.blade.php
+++ b/resources/views/pages/auth/password/reset.blade.php
@@ -2,27 +2,33 @@
use Illuminate\Support\Facades\Password;
use function Laravel\Folio\name;
-use function Livewire\Volt\{state, rules};
+use Livewire\Volt\Component;
+use Livewire\Attributes\Validate;
-state(['email' => null, 'emailSentMessage' => false]);
-rules(['email' => 'required|email']);
name('auth.password.request');
+new class extends Component
+{
+ #[Validate('required|email')]
+ public $email = null;
+ public $emailSentMessage = false;
-$sendResetPasswordLink = function(){
- $this->validate();
+ public function sendResetPasswordLink()
+ {
+ $this->validate();
- $response = Password::broker()->sendResetLink(['email' => $this->email]);
+ $response = Password::broker()->sendResetLink(['email' => $this->email]);
- if ($response == Password::RESET_LINK_SENT) {
- $this->emailSentMessage = trans($response);
+ if ($response == Password::RESET_LINK_SENT) {
+ $this->emailSentMessage = trans($response);
- return;
- }
+ return;
+ }
- $this->addError('email', trans($response));
-}
+ $this->addError('email', trans($response));
+ }
+};
?>
diff --git a/resources/views/pages/auth/register.blade.php b/resources/views/pages/auth/register.blade.php
index fc9b5b8..c238ceb 100644
--- a/resources/views/pages/auth/register.blade.php
+++ b/resources/views/pages/auth/register.blade.php
@@ -4,30 +4,44 @@
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
use Illuminate\Auth\Events\Registered;
-
+use Livewire\Volt\Component;
+use Livewire\Attributes\Validate;
use function Laravel\Folio\{middleware, name};
-use function Livewire\Volt\{state, rules};
middleware(['guest']);
-state(['name' => '', 'email' => '', 'password' => '', 'passwordConfirmation' => '']);
-rules(['name' => 'required', 'email' => 'required|email|unique:users', 'password' => 'required|min:8|same:passwordConfirmation']);
name('auth.register');
-$register = function(){
- $this->validate();
+new class extends Component
+{
+ #[Validate('required')]
+ public $name = '';
+
+ #[Validate('required|email|unique:users')]
+ public $email = '';
+
+ #[Validate('required|min:8|same:passwordConfirmation')]
+ public $password = '';
+
+ #[Validate('required|min:8|same:password')]
+ public $passwordConfirmation = '';
+
+ public function register()
+ {
+ $this->validate();
- $user = User::create([
- 'email' => $this->email,
- 'name' => $this->name,
- 'password' => Hash::make($this->password),
- ]);
+ $user = User::create([
+ 'email' => $this->email,
+ 'name' => $this->name,
+ 'password' => Hash::make($this->password),
+ ]);
- event(new Registered($user));
+ event(new Registered($user));
- Auth::login($user, true);
+ Auth::login($user, true);
- return redirect()->intended('/');
-}
+ return redirect()->intended('/');
+ }
+};
?>
diff --git a/resources/views/pages/auth/verify.blade.php b/resources/views/pages/auth/verify.blade.php
index 745a781..69dbb43 100644
--- a/resources/views/pages/auth/verify.blade.php
+++ b/resources/views/pages/auth/verify.blade.php
@@ -1,13 +1,17 @@
user();
if ($user->hasVerifiedEmail()) {
redirect('/');
@@ -16,10 +20,11 @@
$user->sendEmailVerificationNotification();
event(new Verified($user));
-
+
$this->dispatch('resent');
session()->flash('resent');
}
+};
?>
diff --git a/routes/web.php b/routes/web.php
new file mode 100644
index 0000000..a85081f
--- /dev/null
+++ b/routes/web.php
@@ -0,0 +1,16 @@
+name('login');
+Route::redirect('register', 'auth/register')->name('register');
+
+// define the logout route
+Route::middleware('auth')->group(function () {
+ Route::post('logout', LogoutController::class)
+ ->name('logout');
+});
\ No newline at end of file
diff --git a/src/AuthServiceProvider.php b/src/AuthServiceProvider.php
index e150bd0..d83b02d 100644
--- a/src/AuthServiceProvider.php
+++ b/src/AuthServiceProvider.php
@@ -20,7 +20,7 @@ public function boot()
// $this->loadTranslationsFrom(__DIR__.'/../resources/lang', 'auth');
$this->loadViewsFrom(__DIR__.'/../resources/views', 'auth');
// $this->loadMigrationsFrom(__DIR__.'/../database/migrations');
- // $this->loadRoutesFrom(__DIR__.'/routes.php');
+ $this->loadRoutesFrom(__DIR__.'/../routes/web.php');
$this->registerAuthFolioDirectory();