2014-04-08 2 views
3

내 관리 번들에 약간의 로그 아웃 문제가 있습니다.Symfony 2의 메모리 로그인에서 로그 아웃 할 수 없습니다.

관리자가 메모리에 로그인하면이 작동하지만 로그 아웃 할 수 없습니다.

다른 한편으로 사용자를위한 로그 아웃은 완벽하게 작동합니다. 내가 뭐 놓친 거 없니 ?

이것은 내 security.yml

security: 
encoders: 
    Esimed\FrontBundle\Entity\Company: 
     algorithm: sha1 
     encode_as_base64: false 
     iterations: 1 
    Symfony\Component\Security\Core\User\User: plaintext 

role_hierarchy: 
    ROLE_ADMIN:  ROLE_USER 
    ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH] 

providers: 
    companies: 
     entity: { class: Esimed\FrontBundle\Entity\Company, property: email } 
    in_memory: 
     memory: 
      users: 
       admin: { password: adminpass, roles: 'ROLE_ADMIN' } 

firewalls: 
    dev: 
     pattern: ^/(_(profiler|wdt)|css|images|js)/ 
     security: false 

    admin: 
     pattern: ^/admin 
     http_basic: 
      realm: "Administration" 
      provider: in_memory 
     logout: 
      invalidate_session: true 
      path: /admin/company/logout 
      target:/
     anonymous: ~ 

    main: 
     pattern: ^/ 
     form_login: 
      check_path: esimed_front_company_login_check 
      login_path: esimed_front_company_login 
     logout: 
      path: /company/logout 
      target:/
     anonymous: ~ 

access_control: 
    - { path: ^/company/add$, roles: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/company/create$, roles: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/company/login$, roles: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/job/view/, roles: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/company/search, roles: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/company/category-list, roles: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/company/company-list, roles: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/company, roles: ROLE_COMPANY } 
    - { path: ^/job, roles: ROLE_COMPANY } 
    - { path: ^/admin, roles: ROLE_ADMIN } 
+0

사용중인 심포니 버전은 무엇입니까? – Chausser

+0

참조 http://stackoverflow.com/questions/233507/how-to-log-out-user-from-web-site-using-basic-authentication –

답변

3

엘너 Abdurrakhimov가에 대한 답변 상태 같이 similar question : 당신이 HTTP 인증을 사용하고 있기 때문에 당신의 브라우저가 자격 증명을 캐시합니다

, 그 이유는 다음과 같을 수 있습니다 자동으로 위치를 변경합니다. HTML 양식 인증을 사용해보고 문제가 지속되는지 확인하십시오.

에 한번 사용하여 security.yml

admin: 
    pattern: ^/admin 
    provider: in_memory 
    form_login: 
     check_path: /check_login 
     login_path: /admin/login 
    logout: 
     invalidate_session: true 
     path: /admin/company/logout 
     target:/
    anonymous: ~ 

... 

access_control: 
    - { path: ^/admin/login$, roles: IS_AUTHENTICATED_ANONYMOUSLY } 
    ... 

이 방법을 다음 여전히 메모리에있는 공급자를 사용하여 인증 할 수 있고 당신이 원하는 경우에 당신은 여전히 ​​당신의 자격 증명을 브라우저에 저장 한 수 있지만 로그 아웃하면 사용자를 인증하는 데 사용되는 쿠키와 세션이 삭제되고 자동으로 다시 로그인되지 않습니다.

+0

답변 사본 : http://stackoverflow.com/a/8715764/330267 –

+0

비슷한 것은 아닙니다. 그것은 사본입니다 ... –

+0

비슷한 대답은 다른 사람들의 단어를 마치 자신의 것으로 복사 할 수 있음을 의미하지 않습니다. 그것은 표절이며, 단순히 좋지 않습니다. – BoltClock

관련 문제