2016-02-25 8 views
5

मैं Rails 4.2 एप्लिकेशन पर काम कर रहा हूं और प्रमाणीकरण के लिए devise मणि का उपयोग कर रहा हूं।डेविस: उपयोगकर्ता साइन आउट करने के बाद remember_me कुकी का उपयोग कैसे करें?

remember_me सुविधा के लिए, तैयार एक कुकी remember_user_token उत्पन्न करता है जो sign_out के बाद नष्ट हो जाता है।

क्या कोई तरीका है कि Deviseremember_user_token को नष्ट नहीं करना चाहिए?

मैं initializer

config.expire_all_remember_me_on_sign_out = false

में नीचे configfalse करने की कोशिश की लेकिन यह मदद नहीं की।

मुझे साइन-आउट के बाद उस कुकी की आवश्यकता है जैसे कि यह लॉगिन फ़ॉर्म को पॉप्युलेट करेगा।

कृपया मदद करें।

धन्यवाद

उत्तर

-1

कुकी स्टोर पर कम डाउन डाउन है। सबसे पहले, एक कुकी में सब कुछ सेट होने के बाद स्थायी रूप से होता है या जब तक उपयोगकर्ता मैन्युअल रूप से कुकी को हटा देता है। इसका अर्थ यह है कि यदि आप user_id और user_group_id सेट करते हैं, तो यह कुकी में अपडेट या हटाए जाने तक अच्छा होता है। यह एक सत्र से अलग है क्योंकि सत्र एक कंप्यूटर पर राम की तरह है, ब्राउज़र बंद होने के बाद, सत्र इसके साथ-साथ इसके सभी डेटा बंद हो जाता है।

  1. तो, यह कि जब आप अपने उपयोगकर्ता को लॉग आउट, आपको लगता है कि उनकी कुकी कुछ भी आप इसे wan't नहीं है करने के लिए खाली निर्दिष्ट करने की आवश्यकता है। जब आपका उपयोगकर्ता लॉग इन करता है, तो आप लॉग इन करते समय उपयोगकर्ता को जो कुछ भी चाहते हैं उसे सेट करते हैं। इसलिए, चूंकि सत्र और कुकी पूरी तरह से अलग चीजें हैं, तब तक जब तक आप उन्हें चुनना नहीं चुनते तब तक वे एक साथ बातचीत नहीं करते। तो आपका सत्र कभी भी कुकी स्टोर में अपने आप को डंप नहीं करेगा जबतक कि आप इसे ऐसा न करें।

  2. हर बार जब आपके उपयोगकर्ता आपकी साइट पर जाते हैं, तो आपके पास एक ही हैंडशेक हो सकता है जो सुनिश्चित करता है कि यदि आवश्यक हो तो कुकी डीबी से मेल खाती है। अन्यथा, आपके पास अलग-अलग डेटा हो सकते हैं जो लॉगिन पर अपडेट हो जाता है या हैंडशेक के बिना और क्या नहीं, उपयोगकर्ता को यह सुनिश्चित करने के लिए लॉग इन करना होगा कि वे अभी भी वैध हैं जो कुकी को पहले स्थान पर रखने के उद्देश्य को हरा देता है।

  3. क्लाइंट साइड कुकी स्टोरेज का नकारात्मक सुरक्षा सुरक्षा चिंताएं हैं। डेटा स्टोर करने के लिए कुकी का उपयोग करने के तरीके के आधार पर, कोई व्यक्ति आपकी साइट पर कुछ बॉडी कुकी को हाइजैक कर सकता है और दिखा सकता है कि वे हैं। इसे सावधान डिज़ाइन से बचा जा सकता है, लेकिन केवल यह मान लें कि जो भी आपके कुकी स्टोर में है, वह सभी के लिए उचित गेम है, इसलिए इसे सावधानीपूर्वक और केवल गुप्त डेटा के लिए उपयोग करें।

आशा है कि इससे मदद मिलती है!

1

फॉर्म प्री-भरने के साथ युग्मन प्रमाणीकरण आवश्यक रूप से एक अच्छा विचार नहीं है। आप सफल लॉगिन पर एक कुकी में लॉगिन स्टोर कर सकते हैं। आप अपने SessionsController में create विधि को ओवरराइड कर सकते हैं, super पर कॉल करें Devise::SessionsController#create पर कॉल करें और इसे एक ब्लॉक पास करें। सफल लॉग इन के बाद ब्लॉक को निष्पादित किया जाएगा और उपयोगकर्ता को पैरामीटर के रूप में प्राप्त होगा।

class SessionsController < Devise::SessionsController 
    def create 
    super do |user| 
     cookies[:login] = user.login 
    end 
    end 
end 
संबंधित मुद्दे