2010-12-16 7 views
5

के साथ remember_me मेरी आखिरी परियोजना के लिए मैं https://github.com/hassox/rails_warden का उपयोग कर रहा हूं। यह मेरी आवश्यकताओं को बहुत अच्छी तरह से अनुकूल करता है सिवाय इसके कि मुझे remember_me को लागू करने का एक अच्छा तरीका नहीं मिल रहा है। मुझे पता है कि सुरक्षा बिंदु से याद रखने के लिए यह बेहद मुश्किल है, इसलिए मुझे उम्मीद है कि वहाँ एक परियोजना है जो नौकरी करेगी। किसी ने कुछ देखा या एक अच्छा विचार मिलता है?वार्डन

उत्तर

4

Devise, जो वार्डन के शीर्ष पर एक प्रमाणीकरण समाधान है, में rememberable कार्यान्वयन है।

+0

मुझे पता है कि वसीयत एक rememberable कार्यान्वयन था है, मुझे एहसास हुआ नहीं था कि यह हालांकि एक वार्डन रणनीति थी। यह सही है, मैं इसे अपने वार्डन कॉन्फ़िगरेशन में पहली रणनीति के रूप में प्लग कर सकता हूं। एकीकृत और पुष्टि करेगा कि यह काम करता है। – opsb

+1

मुझे तैयार करने पर भरोसा किए बिना उत्तर में दिलचस्पी होगी क्योंकि मैं एक sinatra ऐप में लागू करने की कोशिश कर रहा हूं। – Macario

5

यहाँ ठीक है, मैं कैसे हल यह

# User model must have remember_token attribute 

# in config.ru 
use Rack::Cookies 
run MyApp 

    # in lib/strategies.rb 
    Strategies.add(:cookie) do 
    def valid? 
     env['rack.cookies']['user.remember.token']  
    end 

    def authenticate! 
     if user = User.find_by_remember_token(cookies['user.remember.token']) 
     success! user 
     else 
     fail! "Could not log in" 
     end 
    end 
    end 

    Manager.after_authentication :scope => :user do |user, auth, opts| 
    auth.env['rack.cookies']['user.remember.token'] = user.generate_remember_token! # sets its remember_token attribute to some large random value and returns the value 
    end 

    Manager.before_logout :scoper => :user do |user, auth, opts| 
    user.update_attribute :remember_token, nil 
    end 
+0

यह अब और काम नहीं कर रहा है। (रेल में 4.2) – Jacob

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