PHP と Silex を使用して Web アプリを構築し、次のSecurityServiceProvider
ように基本認証を実装しました。
$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,
),
),
));
/admin
パスが保護されていることがわかるよう$app['security']->getToken()->getUser();
に、認証された実際のユーザーを取得し、Logged in as $username/login
のようなものを表示するために使用できますが、またはルートでこれを行う/
と、ユーザーは常にanon.
認証済み。
次のようなメッセージを表示するためにanon.
、認証され/
たユーザーを取得するにはどうすればよいですか?/login
is_granted('IS_AUTHENTICATED_FULLY'
また、小枝テンプレートで関数を使用してユーザーが認証されているかどうかを確認しようとしましたが、匿名ユーザーが認証されたユーザーよりも優先されるため、(認証されていても) false が返されるため、ここでは成功しません/login
。/