2013-11-20 6 views
5

मैं किसी उपयोगकर्ता को symfony2 में लॉगआउट करने के लिए मजबूर करना चाहता हूं यह जांचने के बाद कि इसमें एक विशिष्ट सुरक्षित क्षेत्र में पहुंच के लिए पर्याप्त क्षमताएं नहीं हैं।उपयोगकर्ता लॉगआउट symfony2 को कैसे मजबूर करें

मैं के साथ की कोशिश की है:

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

लेकिन ऐसा लगता है कि कुछ गलत हो जाता, तब भी उपयोगकर्ता में लॉग इन किया है जब तक मैं उसे बाहर कर दिया जाऊँ/लॉगआउट मार्ग का उपयोग कर।

मुझे यह उल्लेख करना होगा कि मैं एक कस्टम बैक ऑफिस बनाने के लिए एक वर्डप्रेस आधारित वेबसाइट के साथ अपने सिम्फनी ऐप को जोड़ने के लिए KayueWordpressBundle का उपयोग कर रहा हूं।

यहाँ मैं यह करने के लिए कैसे कर सकते हैं कृपया मेरी security.yml फ़ाइल

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 

है?

धन्यवाद

+0

के संभावित डुप्लिकेट [Symfony2: नियंत्रक में उपयोगकर्ता लॉग ऑन करने के लिए कैसे बाहर मैन्युअल] (http://stackoverflow.com/questions/6464754/ symfony2-how-to-log-user-out-मैन्युअल-इन-कंट्रोलर) –

उत्तर

20

आप null साथ setToken() फोन करके लॉगआउट मजबूर कर सकते हैं, कुछ इस तरह का प्रयास करें:

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

यह सुरक्षा संदर्भ से उपयोगकर्ता टोकन को नष्ट करने और उपयोगकर्ता बाहर निकाल देगा।


इसके अलावा, कृपया अधिक जानकारी के लिए इस सवाल का देखें: Symfony2: how to log user out manually in controller?

+0

धन्यवाद यह मेरे लिए काम करता है :) –

+0

दिए गए समाधान के ऊपर लॉगआउट हैंडलर को कॉल नहीं करेगा, अगर मैंने लॉगआउट के लिए कोई हैंडलर पंजीकृत किया है। – Jaimin

+1

बीटीडब्लू, '$ this-> कंटेनर-> प्राप्त करें (' security.authorization_checker ')' (2.6 में नया) – Ronan

संबंधित मुद्दे