2013-04-09 6 views
11

मैं अब थोड़ी देर के लिए खोज रहा हूँ, कोई भी जानकारी, कैसे symfony2 में प्रमाणीकरण सफलता के बाद कुछ करने के लिए पर के लिए। मैं पुराने हैश का उपयोग करके सफल प्रमाणीकरण के बाद bcrypt का उपयोग करने के लिए उपयोगकर्ता पासवर्ड को दोबारा बनाना चाहता हूं। मुझे यह करने की ज़रूरत है जब मेरे पास अभी भी वैध सादा पासवर्ड है, इसलिए यह क्रेडेंशियल चेक के बाद और रीडायरेक्ट से पहले होना चाहिए।symfony2 लॉगिन सफलता के बाद और रीडायरेक्ट से पहले कुछ करें?

कोई सुराग कैसे है कि प्राप्त करने के लिए?

मैं Symfony में घटना डिस्पैचर के बारे में कुछ पाया, लेकिन मैं अगर वहाँ सफल प्रमाणीकरण के बाद किसी भी घटना है नहीं मिल रहा।

कृपया मुझे ठीक कर लें मैं कुछ बेहतर दृष्टिकोण सुझाव है कि यह गलत तरीके से करने का प्रयास कर रहा हूँ और।

// संपादित

ठीक है मैंने पाया गतिविधि सक्रिय बस के बाद प्रमाणन सफलता, यह security.authentication.success कहा जाता है। तो अब मैं इस घटना से जुड़ा हूं लेकिन अब मुझे यकीन नहीं है कि मेरे बाउंड कोड में मुझे अपना ईवेंट श्रोता कहाँ संलग्न करना चाहिए? क्या मुझे में load() विधि में ऐसा करना चाहिए?

उत्तर

28

आप एक लॉगिन सफलता हैंडलर निर्दिष्ट कर सकते हैं सफल लॉगिन करके निष्पादित किया जाना है।

उदाहरण के लिए

, अपने security.yml

firewalls: 
    main: 
     pattern: ^/ 
     form_login: 
      success_handler: my.security.login_handler 

अब वर्ग जो Symfony\Component\Security\Http\Authentication\AuthenticationSuccessHandlerInterface लागू करता है बना सकते हैं और सफल लॉगिन करके, आप आप जो कुछ भी आवश्यकता है और रीडायरेक्ट संभाल के रूप में आप फिट देख सकते हैं।

/** 
* 
*/ 
public function onAuthenticationSuccess(Request $request, TokenInterface $token) 
{ 
    // handle it and return a response 
} 

फिर अपने बंडल के लिए अपने services.xml में उस नाम का कोई सेवा बनाने के लिए, या अपने config.yml नव निर्मित हैंडलर का उपयोग करने में।

मैं मूल रूप से पता चला कि यह कैसे इस ट्यूटोरियल निम्न कार्य करें:

http://www.reecefowell.com/2011/10/26/redirecting-on-loginlogout-in-symfony2-using-loginhandlers/

+0

बढ़िया है, मैं इसे शीघ्र ही कोशिश करता हूँ :) – piotrekkr

+0

आपका समाधान महान काम करता है। पहले तो मुझे घटना सफलता घटना के लिए लॉग इन से जुड़ी श्रोता के साथ करने की कोशिश की लेकिन फिर मैं अनुरोध वस्तु नहीं था इतना आसान अपने समाधान के रूप में सुलभ :) आप मदद – piotrekkr

+0

के लिए धन्यवाद जब मैं मैंने पाया $ अनुरोध> headers-> प्राप्त इस की कोशिश की ('रेफरर') मेरे लॉगिन पेज पर सेट किया गया था। किसी भी विचार से पृष्ठ को कैसे प्राप्त किया जाए * पहले * उपयोगकर्ता को लॉगिन पृष्ठ पर रीडायरेक्ट किया गया था? – adavea

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