fix(security): emit authentication success events
Signed-off-by: Sebastian Krupinski <krupinski01@gmail.com>
This commit is contained in:
@@ -9,6 +9,7 @@ use KTXC\Resource\ProviderManager;
|
||||
use KTXC\Security\Authentication\AuthenticationRequest;
|
||||
use KTXC\Security\Authentication\AuthenticationResponse;
|
||||
use KTXC\Security\Event\AuthenticationFailedEvent;
|
||||
use KTXC\Security\Event\AuthenticationSucceededEvent;
|
||||
use KTXC\Service\TokenService;
|
||||
use KTXC\Service\UserAccountsService;
|
||||
use KTXC\Context\TenantContextInterface;
|
||||
@@ -616,7 +617,16 @@ class AuthenticationManager
|
||||
*/
|
||||
private function completeAuthentication(AuthenticationSession $session): AuthenticationResponse
|
||||
{
|
||||
$userData = $this->userService->fetchByIdentifier($session->userIdentifier);
|
||||
$userId = $session->userIdentifier;
|
||||
if ($userId === null) {
|
||||
return AuthenticationResponse::failed(
|
||||
AuthenticationResponse::ERROR_INVALID_SESSION,
|
||||
'Authenticated user is missing',
|
||||
401,
|
||||
);
|
||||
}
|
||||
|
||||
$userData = $this->userService->fetchByIdentifier($userId);
|
||||
|
||||
if ($userData === null) {
|
||||
return AuthenticationResponse::failed(
|
||||
@@ -633,6 +643,11 @@ class AuthenticationManager
|
||||
|
||||
$this->deleteSession($session->id);
|
||||
|
||||
$this->events->dispatch(new AuthenticationSucceededEvent(
|
||||
$userId,
|
||||
$session->tenantIdentifier,
|
||||
));
|
||||
|
||||
return AuthenticationResponse::success(
|
||||
$this->buildUserData($user),
|
||||
$tokens
|
||||
|
||||
Reference in New Issue
Block a user