Silex Firewall或SecurityServiceProvider中的Check_path

时间:2016-04-20 09:44:26

标签: forms silex

我尝试在SILEX中进行公式检查登录。

    $app['security.firewalls'] = array(
        'login' => array(
            'pattern' => '^/login$',
            'anonymous' => true
         ),
        'register' => array(
            'pattern'=>'^/register$',
            'anonymous' => true
        ),
        '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'),
            'users'=> $app->share(function() use ($app){
                return new \resources\controller\UserProvider($app['db']);
            })
        )
    );

我不明白的是那个:

form'=>array('login_path'=>'/login','check_path' => '/login_check'),

/ login是您尝试访问安全区域时将路由到的路由。 / login_check应该是检查数据的路径,在那里检查你的数据....这是对的吗?

我的问题是:/ login_check背后应该是什么?我希望你可以在谷歌的数小时后帮助我...

感谢你的帮助

1 个答案:

答案 0 :(得分:0)

是的,你是对的。 /login是用户将路由到授权的路径。 /login_check是检查授权表单帖子(用户名和密码)的路径。

/login需要实现,只需为此路径添加路由并显示授权表单。

<form method="post" action="/chat/login_check">
<input type="text" id="_username" name="_username" />
<input type="text" id="_password" name="_password" />
....
</form>

/login_check不需要实现,它被添加并实现为隐含的安全组件。此路径应位于安全区域中,因此将其更改为/chat/login_check

同时将模式更改为'pattern'=>'^/chat',以捕获以/ chat

开头的所有请求