2016-05-11 6 views
1

У меня проблема с маршрутизацией в SILEX. У меня есть routing.ymlВход/Выход из системы SecurityServiceProvider в Silex

indexGet: 
    path: /chat 
    defaults: { _controller: 'resources\controller\StartApp::indexHtml' } 
    methods: [GET] 

indexPost: 
    path: /chat 
    defaults: { _controller: 'resources\controller\StartApp::sendMessage'} 
    methods: [POST] 

LoginGet: 
    path: /login 
    defaults: { _controller: 'resources\controller\Logins::checkLoginData'} 
    methods: [GET] 

RegisterGet: 
    path: /register 
    defaults: { _controller: 'resources\controller\RegisterForm::showReg'} 
    methods: [GET] 

RegisterPost: 
    path: /register 
    defaults: { _controller: 'resources\controller\RegisterForm::showReg'} 
    methods: [POST] 

Logout: 
    path: /logout 
    defaults: { _controller: 'resources\controller\Logout::logoutFromChat'} 
    methods: [GET] 

Это мой FireWall конфигурации:

$app->register(new Silex\Provider\SecurityServiceProvider()); 
$app['security.firewalls'] = array(
     'chat' => array(
      'pattern'=>'/chat', 
      'anonymous'=>false, 
      //login_path: before authorisation Check_path: path to check the date of the user 
      'form'=>array('login_path'=>'/login','check_path' => '/chat/login_check'), 
      //should realizise the logout 
      'logout'=>array('logout_path'=>'/chat/logout','invalidate_session'=>true), 
      'users'=> $app->share(function() use ($app){ 
       return new \resources\controller\UserProvider($app['db']); 
      }) 
     ) 
); 

Проблема заключается в том, что автоматическая маршрутизация для входа и выхода из системы не работает. Можете ли вы помочь мне найти провал?

ответ

-1

login и login_check должны находиться вне брандмауэра. в настоящее время только ваш логин находится вне его.

+0

Как говорится в [documentation] (http://silex.sensiolabs.org/doc/providers/security.html), 'login_path' должен находиться за пределами брандмауэра, а' login_check' должен быть внутри. – Wndrr

Смежные вопросы