2016-02-04 198 views
1

我的Silex应用程序工作正常,但在用USER创建SESSION的时刻遇到了问题。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

好的解决了这个问题。

$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'), 
) 
)); 
+0

我知道这是旧的,但你能解释一下,如何在你登录你的网站后为你的用户创建一个会话吗? –