official Symfony documentation говорит нам следующее:Почему мы не должны проверить объект пользователя, чтобы проверить, если пользователь находится в сети в Symfony2
// yay! Use this to see if the user is logged in
if (!$this->get('security.authorization_checker')->isGranted('IS_AUTHENTICATED_FULLY')) {
throw $this->createAccessDeniedException();
}
// boo :(. Never check for the User object to see if they're logged in
if ($this->getUser()) {
}
Я никогда использовал $this->getUser()
до сих пор без проблем, как проверить, если пользователь находится в режиме онлайн и получает текущего зарегистрированного пользователя, и только что обнаружил, что это неправильно. Но я не могу найти, почему это неправильно.
Может ли кто-нибудь сказать или привести пример, где это может вызвать проблему? Я не вижу проблемы, так как он всегда возвращает null
(преобразованный из anon.
, как говорят документы), если никто не зарегистрировался и текущий вход в пользовательский класс как объект с доступом к его методам.
Возможно, потому что всегда есть объект пользователя? «Тотчас». аутентифицирован, но имеет анонимный токен, поэтому он не полностью аутентифицирован. Это просто идея ... –
Это так, но вызов его без входа в систему всегда возвращает значение null, поэтому в чем проблема с его использованием вместо проверки безопасности? –