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)); + } +}; ?>
-
- - - -

Reset password

-
-
-
- @volt('auth.password.token') -
- - - - Reset password - - @endvolt -
-
+ + + + @volt('auth.password.token') +
+ + + + Reset password + + @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')
@@ -43,8 +50,7 @@ Confirm password @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();