我的Silex应用程序工作正常,但我在向用户创建会话时遇到了问题。
它使auth很好,因为如果用户凭据是正确的,那么按预期重定向到主提示符,如果凭据错误,仍然在表单中。 但是,如果我尝试获取用户信息,那么它就是空的。
if (null !== $token) {
$user = $token->getUser();
}
嗯,我在app.php中使用的代码是下一个:
$app->register(new Silex\Provider\SecurityServiceProvider(), array(
'security.firewalls' => array(
'admin' => array(
'remember_me' => array(),
'pattern' => '^/login/',
'form' => array('login_path' => '/login', 'check_path' => '/login/login_check'),
'logout' => array('logout_path' => '/login/logout', 'invalidate_session' => true),
'users' => $app->share(function() use ($app) {
return new Project\Controller\UserProvider($app['db']);
}),
),
)
));
有什么想法吗?
答案 0 :(得分:0)
好的就这样解决了。
$app->register(new Silex\Provider\SecurityServiceProvider(), array(
'security.firewalls' => array(
'login' => array(
'pattern' => '^/login$',
),
'secured' => array(
'remember_me' => array(),
'pattern' => '^.*$',
'form' => array('login_path' => '/login', 'check_path' => '/login/login_check'),
'logout' => array('logout_path' => '/login/logout', 'invalidate_session' => true),
'users' => $app->share(function() use ($app) {
return new Eumed\Controller\UserProvider($app['db']);
}),
),
'unsecured' => array(
'anonymous' => true,
)
),
'security.access_rules' => array(
array('^/.+$', 'ROLE_USER'),
array('^/login$', 'SS'),
)
));