2010-11-23 29 views
25

我覺得我在這裏錯過了一些明顯的東西,而且我希望只要我發佈這篇文章,就會讓我失望的是我缺少的Google搜索鏈接:-)使用Rack :: Session :: Cookie刪除當前會話

enable :sessions 

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

回答

43

只需使用

session.clear 

摧毀了會議。

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 cookie仍然存在。 – ecoffey 2010-11-23 22:39:17

+0

@ecoffey你確定它是同一個cookie嗎?如果你使用`session.clear`,它可能會是一個新的會話,但舊的會被破壞。無會話密鑰可能會保留原始cookie,但是沒有任何值。 – xentek 2014-02-28 03:50:06

相關問題