Ogólne

Poprawne wiadomości podczas błędnego logowania na Twojej stronie www

Standardowo niezależnie od tego czy użytkownik nie istnieje, wprowadziliśmy złe hasło lub jest zablokowany wiadomość zwrotna zawsze wygląda tak samo:

{
    "code": 401,
    "message": "Bad credentials"
}

W łatwy sposób można uzyskać dokładną wiadomość jaki błąd wystąpił, wystarczy zarejestrować prosty subscriber który do odpowiedzi wprowadzi wiadomość z pierwszego wyjątku który wystąpił (Pierwszy wyjątek prawdopodobnie pochodzi FosUser’a i zawiera pierwszy błąd walidacji użytkownika który zawiera wiadomość o dokładnym błędzie)

<?php


namespace App\Event\Subscriber;


use Lexik\Bundle\JWTAuthenticationBundle\Event\AuthenticationFailureEvent;
use Lexik\Bundle\JWTAuthenticationBundle\Events;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;

class AuthenticationFailureSubscriber implements EventSubscriberInterface
{
    public static function getSubscribedEvents()
    {
        return [
            Events::AUTHENTICATION_FAILURE => 'onAuthenticationFailure'
        ];
    }

    public function onAuthenticationFailure(AuthenticationFailureEvent $event) {
        $firstEvent = $event->getException();
        while($firstEvent->getPrevious()) {
            $firstEvent = $firstEvent->getPrevious();
        }
        $response = $event->getResponse();
        $response->setMessage($firstEvent->getMessage());
        $event->setResponse($response);
    }
}

Dzięki temu dostajemy zwrotki typu:

{
    "code": 401,
    "message": "The presented password is invalid."
}
{
    "code": 401,
    "message": "User account is disabled."
}
{
    "code": 401,
    "message": "Username \"admsin\" does not exist."
}

Udostępnij

POPRZEDNI POST Czarna dziura. Czyli rest api a WORDPRESS
NASTĘPNY POST Trendy w projektowaniu interfejsów na 2020

Porozmawiajmy

Możemy pomóc Ci przekuć Twój pomysł w realne przedsięwzięcie. Po prostu do nas napisz. Jeśli jesteś zainteresowany dołączeniem do naszego zespołu, nie czekaj. Cały czas szukamy talentów!

POPRZEDNI POST Czarna dziura. Czyli rest api a WORDPRESS
NASTĘPNY POST Trendy w projektowaniu interfejsów na 2020
Strony internetowe Lublin

Something went wrong

Probably Charles broke something.
Please try again. Sorry!