From 6deda68bc61e2e69097bb4e7a93725b945e3e456 Mon Sep 17 00:00:00 2001 From: sinbad Date: Mon, 16 May 2022 09:56:00 +0500 Subject: [PATCH] logout fix --- src/Guards/SessionGuard.php | 14 +++++++++----- src/Middlewares/Authenticate.php | 11 +++++++---- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/src/Guards/SessionGuard.php b/src/Guards/SessionGuard.php index 03c4c18..f73cba5 100644 --- a/src/Guards/SessionGuard.php +++ b/src/Guards/SessionGuard.php @@ -202,16 +202,20 @@ public function logout() { $user = $this->user(); - if ($this->user && ($tokenRemember = $this->user->getRememberToken())) { - $tokenRemember->delete(); - } + $recaller = $this->recaller(); - $this->session->remove($this->getName()); + if ($recaller !== null) { + $tokenRemember = $user->getRememberToken($recaller->token()); + + if ($tokenRemember) { + $tokenRemember->delete(); + } - if (! is_null($this->recaller())) { $this->cookies->get($this->getRememberName())->delete(); } + $this->session->remove($this->getName()); + $this->event(new Logout($user)); $this->user = null; diff --git a/src/Middlewares/Authenticate.php b/src/Middlewares/Authenticate.php index dc92fcd..9b55ec9 100644 --- a/src/Middlewares/Authenticate.php +++ b/src/Middlewares/Authenticate.php @@ -11,7 +11,8 @@ */ class Authenticate extends Injectable implements AuthenticatesRequest { - private const PROPERTY_AUTH_ACCESS = "authAccess"; + private const PROPERTY_AUTH_ACCESS = "authAccess"; + private const AUTH_ACCESS_BY_DEFAULT = true; /** * @var Dispatcher @@ -60,8 +61,10 @@ protected function isGuest() { $controller = $this->dispatcher->getControllerClass(); - return !(new $controller)->authAccess() || - (property_exists($controller, self::PROPERTY_AUTH_ACCESS) && - (new $controller)->authAccess === false); + $authAccess = property_exists($controller, self::PROPERTY_AUTH_ACCESS) ? + (new $controller)->authAccess : self::AUTH_ACCESS_BY_DEFAULT; + + return (method_exists($controller, 'authAccess') && + !(new $controller)->authAccess()) || $authAccess === false; } }