我在创建登录表单以验证用户身份时遇到问题。我完全遵循了本页中的示例:http://silex.sensiolabs.org/doc/providers/security.html#defining-不止一个防火墙,但当我试图访问我的网站时,我有一个重定向循环。
我想保护我的整个网站,所以我写了这样的行:
$app->register(new Silex'Provider'SecurityServiceProvider(), array(
'security.firewalls' => array(
'login' => array(
'pattern' => '^/login$',
),
'secured' => array(
'pattern' => '^.*$',
'form' => array('login_path' => '/login', 'check_path' => '/login_check'),
'logout' => array('logout_path' => '/logout'),
'users' => array(
// password is foo
'user1' => array('ROLE_USER', '5FZ2Z8QIkA7UTZ4BYkoC+GsReLf569mSKDsfods6LYQ8t+a8EW9oaircfMpmaLbPBh4FOBiiFyLfuZmTSUwzZg=='),
),
),
),
));
$app->mount('/login', include '../src/login.php');
然后我创建了一个login.php
文件:
$controllers->get('/', function(Silex'Application $app, Request $request) {
return $app->render('login.html.twig', array(
'error' => $app['security.last_error']($request),
'last_username' => $app['session']->get('_security.last_username'),
));
});
当我试图转到我的主页http://localhost
时,我收到了浏览器的重定向循环消息。
我哪里错了?
谢谢大家!
好的,我发现了问题:它在/login
路径的装载行为上。我不得不在中更改这些行
$app->mount('/',包括'../src/login.php');
在login.php中:
$controllers->get('/login',…