Intereting Posts

Брандмауэр Silex / Symfony Security Access Доступ к токену пользователя за пределами защищенной зоны

Я использую Silex и SecurityProvider, мой брандмауэр:

$app->register(new Silex\Provider\SecurityServiceProvider(), array( 'security.firewalls' => array( 'user' => array( 'pattern' => '^/user/', 'form' => array( 'login_path' => '/connexion', 'check_path' => '/user/login_check', 'default_target_path' => 'homepage_user' ), 'logout' => array('logout_path' => '/user/deconnexion') ... ) ) )); 

Оно работает ! Но я не нашел доступа к объекту пользователя в шаблоне, синтаксис symfony не работает:

 {{ app.user }} 

Поэтому я добавляю новый глобальный в Twig вот так:

 $app['twig'] = $app->share($app->extend('twig', function($twig, $app) { $token = $app['security']->getToken(); $user = ($token === null) ? null : $token->getUser(); $twig->addGlobal('user', $user); return $twig; })); 

Он работает, но не за защищенной областью: $ token равен нулю

Мой вопрос прост: как я могу получить доступ к пользователю за пределами охраняемой зоны?

спасибо

EDIT: я попытался добавить брандмауэр с анонимным = true, например:

 $app->register(new Silex\Provider\SecurityServiceProvider(), array( 'security.firewalls' => array( 'user' => array( 'pattern' => '^/user/', 'form' => array( 'login_path' => '/connexion', 'check_path' => '/user/login_check', 'default_target_path' => 'homepage_user' ), 'logout' => array('logout_path' => '/user/deconnexion'), ... ), 'unsecured' => array( 'anonymous' => true ) ) )); 

Но он не работает, за пределами защищенной области, когда пользователь регистрируется, токен является «анонимным».