Токен аутентификации Symfony getCredentials, возвращающий ноль

у меня есть TokenAuthenticator который реализует SimplePreAuthenticatorInterface, AuthenticationSuccessHandlerInterface а также AuthenticationFailureHandlerInterface, Это создает PreAuthenticatedToken маркер.

В этом классе у меня есть метод authenticateToken который выглядит так

/**
* @param TokenInterface        $token
* @param UserProviderInterface $userProvider
* @param $providerKey
*
* @return PreAuthenticatedToken
*/
public function authenticateToken(TokenInterface $token, UserProviderInterface $userProvider, $providerKey)
{
$token = $token->getCredentials();

Код работает, однако недавно было несколько случаев, когда getCredentials вернулся null вызывая падение кода.

Я пытаюсь выяснить, почему это так, и рассматривал пользователей, которые используют частные сеансы браузера и / или очищают их сеансовые файлы cookie / кэш и т. Д., Но я не могу воспроизвести это.

Принимая во внимание authenticateToken метод type-hints $token переменная к TokenInterface — что вызовет getCredentials чтобы потом вернуться null?

1

Решение

Требуется ли полная аутентификация для всех маршрутов?

Если вы разрешите анонимным пользователям getCredentials вернусь '', как вы можете видеть в этом фрагменте из класса

/**
* {@inheritdoc}
*/
public function getCredentials()
{
return '';
}

Другой класс токенов по умолчанию, который возвращает это RememberMeToken,

-1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector