2014-06-05 1 views
0

symfony2 프로젝트에서 FOSUserBundle을 사용하고 있습니다. 사용자는 로그인하고 로그 아웃 할 수 있으며 모든 것이 잘 작동합니다.로그인 후 리디렉션 할 때 두 가지 문제가 발생합니다.

은 "백엔드 경로"와 같은 것입니다 :

/backend/login 

첫 번째 문제 :로 리디렉션

/backend 

:

사용자가 직접 로그인 페이지 호출하는 경우

/backend/login 

성공적인 로그인 후에 그는 시작 페이지로 리디렉션되고 /backend으로 리디렉션되지 않습니다.

두 번째 문제 :

사용자가 자격 증명이 확인되는 URL로 리디렉션 :

/backend/login_check 

일부 브라우저는이 URL을 저장, 그래서 자동 완성에 도착하고 사용자가하지 않습니다 그는 login으로 리디렉션되므로 backend/login_check을 호출한다고 다시 생각해보십시오. 그러나 성공적인 로그인 후 symfony2은 사용자를 check_login 경로로 리디렉션하려고 시도하며 대부분의 경우 로그인 창이 다시 표시됩니다.

security.yml

firewalls: 
    login_firewall: 
     pattern: ^/backend/login$ 
     anonymous: ~ 

    backend: 
     pattern: ^/backend 
     form_login: 
      provider: fos_userbundle 
      login_path: /backend/login 
      check_path: /backend/login_check 
      #use_forward: true 

routing.yml 나는 그 두 가지 문제가 해결할 수있는 방법

login: 
    pattern: /backend/login 
    defaults: { _controller: VendorNameBundle:User:login } 
login_check: 
    pattern: /backend/login_check 

?

답변

0

먼저 login_firewall을 삭제하십시오. 너는 필요 없어. 대신, 다음 설명 here

access_control를 사용하여, 당신은 당신의 backend 방화벽의 default_target_path 옵션을 사용할 수 있습니다 :

backend: 
    pattern: ^/backend 
    form_login: 
     provider: fos_userbundle 
     login_path: /backend/login 
     check_path: /backend/login_check 
     default_target_path: /backend 

는 자세한 here

관련 문제