2013-11-20 31 views
5

Belirli bir güvenli alana erişim için yeterli yetenekleri olmadığını kontrol ettikten sonra bir kullanıcı symfony2 içinde oturum kapatma yapmak için zorlamak istiyorum.Kullanıcı oturum kapatma symfony2 nasıl zorlanır

Beraber denedim:

$this->get('request')->getSession()->invalidate(); 

ama bir şey/çıkış güzergahı kullanarak onu açmış dek, kullanıcı hala oturum yanlış giderse görünüyor.

Özel bir arka ofis oluşturmak için symfony uygulamasmı bir wordpress tabanlı web sitesine bağlamak için KayueWordpressBundle kullandığımı belirtmek isterim. İşte

Bunu lütfen yapabilirim nasıl security.yml dosya

security: 
firewalls: 
    dev: 
     pattern: ^/(_(profiler|wdt)|css|images|js)/ 
     security: false 
    login_firewall: 
     pattern: ^/$ 
     anonymous: ~ 
    secured_area: 
     pattern: ^/ 
     kayue_wordpress: ~ 
     form_login: 
      check_path: /login_check 
      login_path:/
     logout: 
      path: /logout 
      target:/
access_control: 
    - { path: ^/admin, roles: ROLE_ADMIN } 

providers: 
    wordpress: 
     entity: { class: Kayue\WordpressBundle\Entity\User, property: username } 

encoders: 
    Kayue\WordpressBundle\Entity\User: 
     id: kayue_wordpress.security.encoder.phpass 

mı?

Eğer

+0

olası yinelenen [Symfony2'de: denetleyicisi dışarı Kullanıcıyı el günlüğe nasıl] (http://stackoverflow.com/questions/6464754/ symfony2-nasıl-için-log-user-out-manuel-in-controller) –

cevap

20

Sen null ile setToken() arayarak logoutu zorlayabilir ederim, böyle bir şey deneyin:

$this->container->get('security.context')->setToken(null); 

Bu güvenlik bağlamında kullanıcı belirteci yok etmek ve dışarı kullanıcıyı başlayacak.

Ayrıca

, daha fazla ayrıntı için bu soruyu bakın: Symfony2: how to log user out manually in controller?

ait
+0

Benim için çalışıyor :) –

+0

yukarıda verilen çözüm, çıkış için herhangi bir işleyici kayıtlıysam, çıkış görevlisi çağırmayacak. – Jaimin

+1

BTW, '$ this-> container-> get ('security.authorization_checker')' yı kullanın (2.6'da yeni) – Ronan