2016-06-09 4 views
0

Я использую Symfony 3.1 с FOSUserBundle.Symfony + FOSUserBundle не может войти в систему

Я прочитал документы и интегрировал FOS в Symfony, здесь все хорошо, регистрация, похоже, работает хорошо и сохраняет данные в БД, НО, если я пытаюсь войти в систему, я снова перенаправляюсь на страницу входа в систему как анонимный пользователь.

Я проверил Symfony Profiler, и я вижу, что когда он называется path/login_check (в профилировщике), результат пользователя выполняется как аутентифицированный, но затем после фазы/login_check, когда я перенаправляюсь, пользователь как анонимный ...

-

/login_check от профилировщика:

Свойство Значение

Роли [ROLE_USER]

Наследственные Роли ни

Токен класс Symfony \ Component \ Security \ Основные \ Authentication \ Токен \ UsernamePasswordToken

-

Сеансы, кажется, существует (свалка (app.session)) не пусто , но не хранит данные пользователя.

Это мой security.yml:

безопасности:

encoders: 
    FOS\UserBundle\Model\UserInterface: bcrypt 

role_hierarchy: 
    ROLE_ADMIN:  ROLE_USER 
    ROLE_SUPER_ADMIN: ROLE_ADMIN 

providers: 
    fos_userbundle: 
     id: fos_user.user_provider.username 

firewalls: 
    # disables authentication for assets and the profiler, adapt it according to your needs 
    dev: 
     pattern: ^/(_(profiler|wdt)|css|images|js)/ 
     security: false 

    main: 
     pattern: ^/ 
     form_login: 
      provider: fos_userbundle 
      login_path: /login 
      check_path: /login_check 
      default_target_path: /redirLogIn 
#    csrf_token_generator: security.csrf.token_manager 

     logout:  true 
     anonymous: true 

access_control: 
    - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY } 
#  - { path: ^/admin.*, role: ROLE_ADMIN} 
#  - { path: ^/, role: ROLE_USER} 

(я отключил фишку CSRF из-за проблем на регистрации)

(Это интранет, нет «Домашняя страница «, при открытии сайта вам будет предложено войти в систему)

Зачем это?

Благодаря

+0

Вы разрешили эту проблему? Я тоже сталкиваюсь с той же проблемой/login_check перенаправляет на страницу/login –

ответ

0

Вы должны улучшить отступы в файле

security: 
    encoders: 
     FOS\UserBundle\Model\UserInterface: bcrypt 

    role_hierarchy: 
     ROLE_ADMIN:  ROLE_USER 
     ROLE_SUPER_ADMIN: ROLE_ADMIN 
    # http://symfony.com/doc/current/book/security.html#where-do-users-come-from-user-providers 
    providers: 
     in_memory: 
      memory: ~ 
     fos_userbundle: 
      id: fos_user.user_provider.username_email 
    firewalls: 
     # disables authentication for assets and the profiler, adapt it according to your needs 
     dev: 
      pattern: ^/(_(profiler|wdt)|css|images|js)/ 
      security: false 

     main: 
      # activate different ways to authenticate 

      # http_basic: ~ 
      # http://symfony.com/doc/current/book/security.html#a-configuring-how-your-users-will-authenticate 

      # form_login: ~ 
      # http://symfony.com/doc/current/cookbook/security/form_login_setup.html 
      pattern: ^/ 
      form_login: 
       provider: fos_userbundle 
       csrf_token_generator: security.csrf.token_manager 
       # if you are using Symfony < 2.8, use the following config instead: 
       # csrf_provider: form.csrf_provider 

      logout:  true 
      anonymous: true 

    access_control: 
      - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY } 
      - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY } 
      - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY } 
      - { path: ^/admin/, role: ROLE_ADMIN } 
+0

Я не понимаю, в ваших фрагментах нет кодеров ... – Francesco

+0

Sory, моя ошибка. Я редактирую свои фрагменты. – ciurciurek

+0

Я отредактировал мое сообщение, мои кодеры верны, это должно быть что-то другое, что не работает, я думаю, что symfony firewall auth компонент для отладки (?) – Francesco

0

Я не уверен, я понимаю, вопрос, который вы спрашиваете, но, возможно, именно поэтому вы направлены для входа, когда вы открыть сайт?

Если да, то вот почему:

default_target_path: /redirLogIn 

Изменение выше пути (маршрута) вам нужно.

+0

Нет, моя проблема в том, что когда я ухожу от формы входа, t войти в систему, но вернуться как анонимный (вход не работает) – Francesco