0

我正在学习 ruby​​ on rails,嗯

我有白色的这段代码可以登录并验证编辑帖子,但我不知道如何注销,我只能登录,然后我不能注销,请帮帮我

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

谢谢

4

3 回答 3

0

您需要通过强制客户端向Authorization另一个请求发出请求来强制客户端松开标头

这是我在 /logout 视图中使用 jQuery ajax 调用的方法:

$.ajax({ 
  url : '/empty_200_page', 
  method : 'GET', 
  beforeSend : function(req) { 
    req.setRequestHeader('Authorization', 'nope'); 
  } 
});
于 2014-11-05T23:41:55.937 回答
-1

HTTP 是无状态的,因此它实际上是浏览器(客户端)和服务器的约定,使您“登录”给定请求。 查看这篇文章中的答案——重要的是,一旦身份验证完成,服务器将响应一个Authorization标头,浏览器将回传该标头。request.headers['Authorization'] = ''我认为,通过执行类似的操作手动清除控制器中的标头应该可行。

于 2012-11-08T23:11:54.877 回答
-1

默认情况下,您输入的凭据存储在静态标题中,实际上无法从系统注销...

阅读此维基百科条目http://en.wikipedia.org/wiki/Basic_access_authentication#Disadvantages

于 2012-11-09T06:31:22.157 回答