2012-11-08 55 views
0

我學習Ruby on Rails的會話,以及刪除後http_basic_authenticate_with

我有白這個代碼做一個登錄名和autenticate編輯職位,但我不覺得怎麼辦註銷,我只可以登錄,然後我做不到註銷,請幫我

class PostsController < ApplicationController 

http_basic_authenticate_with :name => 'admin', :password => 'meteoro', :except => [:index, :show] 
# GET /posts 
# GET /posts.json 
def index 
@posts = Post.all 

respond_to do |format| 
    format.html # index.html.erb 
    format.json { render json: @posts } 
end 
end 

感謝

回答

-1

HTTP是無狀態的,所以它是真正的「登錄」的瀏覽器(客戶端)和服務器,讓你的約定一個給出請求。 Check out the answer in this post - 重要的部分是,一旦驗證完成,服務器將回應一個Authorization頭,瀏覽器將回傳。我想,手動清除控制器中的標頭應該像request.headers['Authorization'] = ''那樣工作。

+0

不正確!服務器無法通過response.headers – jobwat

+0

強制該comportement我已更正我的答案以指示請求,而不是響應是必需的。 –

0

需要強制客戶端鬆Authorization頭,通過迫使它放置用另一個

這裏請求是我是如何做的,在一個/註銷圖,它採用一個jQuery AJAX調用:

$.ajax({ 
    url : '/empty_200_page', 
    method : 'GET', 
    beforeSend : function(req) { 
    req.setRequestHeader('Authorization', 'nope'); 
    } 
}); 
+0

這是一個關於如何完成日誌的問題使用ROR。儘管通過Ajax請求肯定可行,但這不是一個典型的解決方案。 –