Frage

I've got a issue creating a login form to authenticate users. I followed exactly the example in this page: http://silex.sensiolabs.org/doc/providers/security.html#defining-more-than-one-firewall, but I've got a redirect loop when I try to access my site.

I'd like to secure my entire website, so I wrote this lines:

$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');

Then I created a login.php file:

$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'),
    ));
});

When I try to go to my homepage http://localhost I've got a redirect loop message by the browser.

Where am I wrong?

Thanks all!

War es hilfreich?

Lösung

Ok I spotted the issue: it's on the mount behaviour with /login path. I had to change those lines in:

$app->mount('/', include '../src/login.php');

And in the login.php:

$controllers->get('/login', ...

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top