Cześć,
chciałem zablokować dostęp do części mojej strony. W związku z tym zgodnie z dokumentacją wprowadziłem zmiany w pliku security.yml
który teraz wygląda tak:
security:
encoders:
Symfony\Component\Security\Core\User\User: plaintext
role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]
providers:
in_memory:
memory:
users:
ryan:
password: ryanpass
roles: 'ROLE_USER'
admin:
password: xxx
roles: 'ROLE_ADMIN'
firewalls:
default:
anonymous: ~
http_basic: ~
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
access_control:
- { path: ^/admin, roles: ROLE_ADMIN }
wszystko fajnie działa, jednak mam problem z wylogowaniem.
Teraz funkcja odpowiedzialna za wylogowanie wygląda tak:
public function logoutAction()
{
// Logging user out.
$this->get('security.token_storage')->setToken(null);
$this->container->get('security.context')->setToken(null);
// Invalidating the session.
$session = $this->get('request')->getSession();
$session->invalidate();
// Redirecting user to login page in the end.
$response = $this->redirectToRoute('logout');
// Clearing the cookies.
$cookieNames = [
$this->container->getParameter('session.name'),
$this->container->getParameter('session.remember_me.name'),
];
foreach ($cookieNames as $cookieName) {
$response->headers->clearCookie($cookieName);
}
return $this->render('MyWwwBundle:Default:wylogowany.html.twig', array());
}
powyższa funkcja niestety nie wylogowuje usera.
W googlach wyczytałem, że należy wyłączyć opcje remeber me ale nie bardzo wiem jak to zrobić.
Podpowie ktoś jak rozwiązać problem?