Я использую PHP и силикатный, чтобы создать веб-приложение, и я реализовал базовую аутентификацию через SecurityServiceProvider
как это: Как вы можете видеть /admin
пути обеспеченыПоказать аутентификацию пользователей на небезопасном (анонимном) маршрутах
$app->register(new Silex\Provider\SecurityServiceProvider(), array(
'security.firewalls' => array(
'private' => array(
'remember_me' => array(
'key' => $config['secret_key'],
'lifetime' => $config['remember_me_duration'],
),
'pattern' => '^/admin',
'form' => array('login_path' => '/login', 'check_path' => '/admin/login_check'),
'logout' => array('logout_path' => '/admin/logout'),
'users' => $app->share(function() use ($app) {
// ...
}),
),
'public' => array(
'pattern' => '^/$',
'anonymous' => true,
),
'login' => array(
'pattern' => '^/login$',
'anonymous' => true,
),
),
));
, там я могу использовать $app['security']->getToken()->getUser();
, чтобы получить фактического пользователя, прошедшего проверку подлинности, и отобразить что-то вроде . Записанный как $ username, но если я это сделаю на маршрутах или /
, пользователь всегда будет anon.
, даже если я аутентифицирован.
Как я могу получить аутентификацию пользователя, если есть один, в противном случае anon.
строки, на /
и /login
маршрутов для того, чтобы отобразить сообщение, как: Зашли как $ имени пользователя?
Я также пытался использовать is_granted('IS_AUTHENTICATED_FULLY'
функции в шаблонах прута, чтобы проверить, если пользователь прошел проверку подлинности, но на /login
и /
она возвращает ложь (даже если я проверка подлинности), так как анонимный пользователь имеет приоритет перед проверкой подлинности тех, поэтому никакого успеха здесь нет.
Не могли бы вы привести пример, пожалуйста? Я попытаюсь это сделать, но раньше я использовал access_control без успеха. – Paul