2016-05-11 9 views
1

SILEXでのルーティングに問題があります。 私はこれは私のファイアウォール設定でのrouting.ymlSecurityServiceProvider経由で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] 

を持っている:

$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

関連する問題