2011-12-27 33 views
9

मैं Symfony2 में प्रमाणीकरण के लिए एक FOSUserBundle का उपयोग कर रहा हूं। सबकुछ ठीक है "मुझे याद रखें" को छोड़कर ठीक काम करता है। मेरी security.yml इस तरह दिखता है:FOSUserBundle और मुझे याद रखें

security: 
providers: 
    fos_userbundle: 
     id: fos_user.user_manager 

encoders: 
    'FOS\UserBundle\Model\UserInterface': sha512 

firewalls: 
    main: 
     pattern: ^/ 
     form_login: 
      provider: fos_userbundle 
     logout:  true 
     anonymous: true 
     remember_me: 
      key:  aSecretKey 
      lifetime: 3600 
      path: /
      domain: ~ 

access_control: 
    - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/admin, role: ROLE_ADMIN } 

role_hierarchy: 
    ROLE_ADMIN:  ROLE_USER 
    ROLE_SUPER_ADMIN: ROLE_ADMIN 

क्या कोई इसे हल करने के बारे में जानता है।

उत्तर

2

Remember me सुविधा यदि काम नहीं कर सकती है तो ब्राउज़र आपके domain (localhost) पर कुकीज़ सेट नहीं कर सकता है। यदि यह एक मामला है, तो अपने डोमेन को वैध डोमेन नाम के रूप में सेट करें (उदाहरण के लिए, dev.site.com)। यह भी सुनिश्चित करें कि आपने कैश साफ़ कर दिया है।

+1

जवाब के लिए धन्यवाद किया करते थे। मैंने इन संभावनाओं की कोशिश की, लेकिन फिर मुझे पता चला कि समस्या लॉगआउट के साथ है: security.yml में सच है। मैं इन पंक्तियों को हटा देता हूं और फिर सब कुछ ठीक काम करता है। – repincln

0

यह सुरक्षा remenber_me विन्यास के ऐड में सत्र जीवन के साथ मेरे लिए काम कर रहा है:

framework: 
    session: 
     default_locale: %locale% 
     auto_start:  true 
     lifetime:  3600 
+1

इस अनुभाग को कहां जोड़ा जाना चाहिए? security.yml, के तहत ... क्या? –

10

यह मेरे लिए काम कर रहा था न क्योंकि मैं 2 उपयोगकर्ता प्रदाताओं प्रयोग किया है: FOSUserBundle और FosFacebook।

कुकी वास्तव में सेट की जा रही थी, लेकिन टोकनबेस्ड यादगार सेवा में, प्रक्रियाAutoLoginCookie मैंने देखा कि गलत प्रदाता का उपयोग किया जा रहा था।

इसे ठीक करने के लिए मुझे allow_me अनुभाग में security.yml में निर्दिष्ट करना था जिसे मैं उपयोग करना चाहता था।

firewalls: 
    main: 
     ... 
     remember_me: 
      key:  "%secret%" 
      lifetime: 2592000 
      path: /
      domain: ~ 
      user_provider: fos_userbundle 

शायद यह किसी और की भी मदद करता है।

+1

ओमजी सबसे अच्छा जवाब कभी !! मुझे डिबगिंग के टन बचाए <3 –

+0

यह विजेता जवाब होना चाहिए! – Sergiu

5

"एड्रियन सी" के रूप में, लेकिन मेरे लिए काम करने वाले एक छोटे बदलाव के साथ।

बजाय "कुंजी" मैं "गुप्त"

firewalls: 
    main: 
     ... 
     remember_me: 
      secret:  "%secret%" 
      lifetime: 2592000 
      path: /
      domain: ~ 
      user_provider: fos_userbundle