登录后Silex不会注册会话

时间:2016-02-04 12:17:24

标签: php silex

我的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']);
            }),
        ),
    )
));

有什么想法吗?

1 个答案:

答案 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'),
)
));