2016-09-14 2 views
0

Было уже несколько раз, когда я изо всех сил пытаюсь заставить автолог работать над моим проектом Silex.Как заставить меня помнить меня и систему автологов в рамках Silex?

Я использовал документ Silex для реализации RememberMeServiceProvider (http://silex.sensiolabs.org/doc/providers/remember_me.html), так что мой app.php выглядит следующим образом:

$app->register(new Silex\Provider\SecurityServiceProvider(), array(
    'security.firewalls' => array(
     'secured' => array(
      'pattern' => '^/', 
      'anonymous' => true, 
      'logout' => true, 
      'form' => array('login_path' => '/login', 'check_path' => '/login_check', 'always_use_default_target_path' => true, 'default_target_path' => '/login/redirect'), 
      'remember_me' => array(
       'key' => MD5('secret_key'), 
       'always_remember_me' => true, 
      ), 
      'users' => $app->share(function() use ($app) { 
       return new MyProject\DAO\UserDAO($app['db']); 
      }), 
     ), 
    ), 
    'security.role_hierarchy' => array(
     'ROLE_ADMIN' => array('ROLE_USER'), 
    ), 
    'security.access_rules' => array(
     array('^/admin', 'ROLE_ADMIN'), 
    ), 
)); 

$app->register(new Silex\Provider\RememberMeServiceProvider()); 

В настоящем время, когда я войти, RememberMe cookie установлен (по умолчанию в течение года).

Но когда я закрываю браузер и возвращаюсь к своему проекту, автоматическая регистрация не выполняется ... Файл cookie все еще существует.

Любой может помочь мне сделать работу с автологином?

спасибо, что заранее.

ответ

1

Немного до сих пор, я все еще борюсь с этой проблемой автоматической аутентификации ... Любой может мне помочь? Большое спасибо!

EDIT: после того, как я постучал головой по столу в течение 2 дней, я, наконец, понял, что у меня проблема. Если это может помочь кому-либо: я просто забыл добавить условие IS_AUTHENTICATED_REMEMBERED, где бы я не использовал IS_AUTHENTICATED_FULLY ... Проверить that thread для получения более подробной информации.