Я пытаюсь пройти аутентификацию через Аутентификатор паролей произвольной формы, я следую примеру Symfony на этой странице: Custom Form Password Authenticator, я изменил несколько фрагментов, чтобы поместить мою логику аутентификации. Все, кажется, работает отлично ... Но Symfony продолжал говорить мне, что я проверку подлинности как анонимный ... Вот код:Symfony 3 User Password Authenticator
Мой заказ Athenticator:
class SippyAuthenticator implements SimpleFormAuthenticatorInterface
{
private $sippyAccounts;
public function __construct(SippyAccounts $sippyAccounts)
{
$this->sippyAccounts = $sippyAccounts;
}
public function authenticateToken(TokenInterface $token, UserProviderInterface $userProvider, $providerKey)
{
$result = $this->sippyAccounts->login($token->getUsername(), $token->getCredentials());
if($result->isError()) {
throw new CustomUserMessageAuthenticationException('Invalid username or password');
} else {
$roles = array('ROLE_ACCOUNT');
$user = new User($token->getUsername(), $token->getCredentials(), $roles);
$tokenNew = new UsernamePasswordToken($user, $user->getPassword(), $providerKey, $user->getRoles());
return $tokenNew;
}
}
public function supportsToken(TokenInterface $token, $providerKey)
{
return $token instanceof UsernamePasswordToken
&& $token->getProviderKey() === $providerKey;
}
public function createToken(Request $request, $username, $password, $providerKey)
{
return new UsernamePasswordToken($username, $password, $providerKey);
}
}
Это моя безопасность .yml:
security:
providers:
in_memory:
memory: ~
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
main:
anonymous: ~
simple_form:
authenticator: sippy.authenticator
login_path: login
check_path: login
access_control:
- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/es/overview, roles: ROLE_ACCOUNT }
Вы можете найти что-нибудь, что связано с журналом ошибок Symfony? Использует ли '$ user-> getRoles()' что-нибудь? Выполняется ли '$ sippyAccounts-> login()' успешно? –
Спасибо за ответ ... В журналах ошибок ничего нет и $ sippyAccounts-> login() успешно выполняются ... все выполняются нормально без ошибок ... Всего несколько минут назад я решил проблему ... Это было потому, что Я генерирую пользователя без вызова объекта $ userProvider, и кажется, что symfony вызывает этот объект ($ userProvider) для заполнения сеанса с ним ... –