Tomasz
Faszyński
Specjalista ds.
programowania
Temat: Symfony 3 - autentykacja
Próbuję zrobić logowanie użytkowników zgodnie z opisem http://symfony.com/doc/current/cookbook/security/entit...Niestety nijak mi to nie idzie.
Entity User.php mam zrobione jak w przykładzie. Tak samo baze danych. Próbowałem hasła trzymać jako bcrypt, md5 oraz plaintext i nic nie działa.
Plik security.yml
security:
encoders:
AppBundle\Entity\User: plaintext
role_hierarchy:
ROLE_ADMIN: [ROLE_USER]
providers:
our_db_provider:
entity: { class: AppBundle:User, property: username }
firewalls:
main:
pattern: ^/
anonymous: ~
provider: our_db_provider
form_login:
login_path: /
check_path: /
logout:
path: /logout
target: /
access_control:
- { path: ^/admin, roles: ROLE_ADMIN }
W formularzu przekazuję zmienne jako _username oraz _password czyli zgodnie z dokumentacją.
Kontroler do obsługi:
public function indexAction(Request $request)
{
$session = $request->getSession();
$authenticationUtils = $this->get('security.authentication_utils');
$error = $authenticationUtils->getLastAuthenticationError();
$lastUsername = $authenticationUtils->getLastUsername();
if ($this->get('security.authorization_checker')->isGranted('ROLE_ADMIN')){
return $this->redirect($this->generateUrl('admin_dashboard'));
}
return $this->render('default/index.html.twig', [
'base_dir' => realpath($this->getParameter('kernel.root_dir').'/..'),
'body_id' => "simple-page",
'last_username' => $lastUsername,
'error' => $error
]);
}
Jak podam błędne dane do logowania to otrzymuję
exception 'Symfony\Component\Security\Core\Exception\BadCredentialsException' with message 'Bad credentials.'
Jak podam poprawne to nie przekierowuje mnie do admin_dashboard i nie zwraca żadnego błędu. W debugu dalej jestem jako anonymous
W bazie mam rolę ROLE_ADMIN i takie też mam w getRoles zwracane w entity User.
Co jest nie tak?