重定向Silex SecurityServiceProvider中的循环问题


Redirect loop issue in Silex SecurityServiceProvider

我在创建登录表单以验证用户身份时遇到问题。我完全遵循了本页中的示例: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',…