2010-11-23 16 views
25

मुझे लगता है कि मुझे कुछ स्पष्ट याद आ रहा है, और मुझे उम्मीद है कि जैसे ही मैं इसे पोस्ट करता हूं, मुझे Google खोज लिंक से मुझे शर्मिंदा कर देगा :-)रैक :: सत्र :: कुकी

enable :sessions 

get '/logout' do 
    # What goes here to kill the session? 
end 

उत्तर

43

बस

session.clear 

का उपयोग सत्र नष्ट करने के लिए।

+0

ओपी उदाहरण से यह स्पष्ट है ('सक्षम: सत्र') कि वे सिनात्रा या इसी तरह के रूबी ढांचे का उपयोग कर रहे हैं, फिर भी उन्होंने 'रैक :: सत्र :: कुकी' का उपयोग करके सत्र को हटाने के बारे में पूछा। क्या इस उत्तर में प्रदान किया गया समाधान उस पर लागू होता है, या सिनात्रा/रेल विशिष्ट है? Http://stackoverflow.com/questions/10451392/how-do-i-set-get-session-vars-in-a-rack-app '# सत्र' के अनुसार सिनात्रा/रेल/के लिए विशिष्ट विधि है। और सादे रैक अनुप्रयोगों में यह नहीं है। यदि यह सच है, तो क्या किसी को पता है कि इससे निपटने के लिए सही रैक-एकमात्र तरीका क्या है? –

+0

मेरे लिए काम नहीं कर रहा है, इसे दो बार कोशिश की। मेरे पास 'सक्षम: सत्र' –

+0

@jj_ नहीं, 'sinatra' और' रेल 'उपयोग रैक मिडलवेयर का उपयोग करके एक बहुत ही सरल ऐप है। –

3

यह निर्भर करता है कि आप अपना सत्र कैसे बनाते हैं। बस आपको सत्र प्रविष्टि को कम करना होगा। यहां सरल उदाहरण है, सत्रों को कैसे बनाएं और नष्ट करें।

get '/login' do 
    session[:username] = params[:username] 
    "logged in as #{session[:username]}" 
    end 

    get '/logout' do 
    old_user = session[:username] 
    session[:username] = nil 
    "logged out #{old_user}" 
    end 

आप भी इस उदाहरण देख सकते हैं: https://gist.github.com/131401

+2

हम्म, मैंने कोशिश की थी, लेकिन मैं "लॉग आउट" के बाद rack.session कुकी अभी भी मौजूद है। – ecoffey

+0

@ecoffey क्या आप वाकई एक ही कुकी हैं? यदि आप 'session.clear' का उपयोग करते हैं तो यह एक नया सत्र होगा, लेकिन पुराना व्यक्ति नष्ट हो जाएगा। नील-आईएनजी सत्र कुंजी मूल कुकी रख सकती है लेकिन किसी भी मूल्य से रहित हो सकती है। – xentek

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