Warnung: Prüfung auf 'IS_AUTHENTICATED_FULLY'
allein wird falsch zurück, wenn der Benutzer mit "Remember me" -Funktionalität angemeldet hat.
Nach Symfony 2-Dokumentation gibt es 3 Möglichkeiten:
IS_AUTHENTICATED_ANONYMOUSLY - automatisch einen Benutzer zugewiesen, die in einer Firewall geschützten Teil der Website ist aber in nicht wirklich angemeldet hat. Dies ist nur möglich, wenn der anonyme Zugriff erlaubt ist.
IS_AUTHENTICATED_REMEMBERED - automatisch an einen Benutzer, der über ein Cookie erinnere mich authentifiziert wurde zugewiesen.
IS_AUTHENTICATED_FULLY - automatisch einen Benutzer zugewiesen, der hat ihre Login-Daten während der aktuellen Sitzung zur Verfügung gestellt.
Diese Rollen stellen drei Ebenen der Authentifizierung:
Wenn Sie die IS_AUTHENTICATED_REMEMBERED
Rolle haben, dann auch Sie haben die IS_AUTHENTICATED_ANONYMOUSLY
Rolle. Wenn Sie die Rolle IS_AUTHENTICATED_FULLY
haben, haben Sie auch die anderen beiden Rollen. Mit anderen Worten, diese Rollen repräsentieren drei Stufen der zunehmenden "Stärke" der Authentifizierung.
Ich lief in ein Problem, bei dem Nutzer unseres Systems, die „Remember Me“ -Funktion benutzt hatte, wurde behandelt, als ob sie in überhaupt auf den Seiten nicht angemeldet hatten, die nur für 'IS_AUTHENTICATED_FULLY'
geprüft.
Die Antwort dann ist sie benötigen, um erneut anmelden, wenn sie nicht vollständig authentifiziert sind, oder für die Erinnerung Rolle zu überprüfen:
$securityContext = $this->container->get('security.authorization_checker');
if ($securityContext->isGranted('IS_AUTHENTICATED_REMEMBERED')) {
// authenticated REMEMBERED, FULLY will imply REMEMBERED (NON anonymous)
}
Hoffentlich dies jemand da draußen retten den gleichen Fehler aus machen Ich machte. Ich habe diese sehr Beitrag als Referenz, wenn die oben schaut, wie Sie überprüfen, ob jemand in oder nicht auf Symfony angemeldet wurde 2.
Quelle: http://symfony.com/doc/2.3/cookbook/security/remember_me.html#forcing-the-user-to-re-authenticate-before-accessing-certain-resources
können Sie nicht überprüfen, ob $ user! = "Anon."? –
Nun, ich war auf der Suche nach etwas "sicherer". Ist nicht eine andere Art, d. H. Eine Funktion zu nennen? – JeanValjean