所以我在 *** 作之前添加了一个过滤器,如下所示:
before_filter :request_confirm,:only => [:delete_device]
过滤方法是:
def request_confirm user = User.find_by_ID(session[:user_ID]) authenticate_or_request_with_http_basic do |nick,pass| nick == user.nickname and pass == user.password endend
没关系,但只是第一次因为rails保存插入的数据,所以以下时间过滤器将被执行但凭证不会询问.
我不知道保存凭据的位置.
.
def authenticate_or_request_with_http_basic(realm = "Application",&login_procedure) authenticate_with_http_basic(&login_procedure) || request_http_basic_authentication(realm)end
那会发生什么.当您第一次点击调用此 *** 作的URL时,此authenticate_or_request_with_http_basic将返回http响应401 Unauthorized.浏览器理解这是一个身份验证请求,并显示一个输入用户名和密码的对话框,然后重新发送相同URL的请求,但将您的凭据包含在请求标头中.您再次点击过滤器,这次方法authenticate_or_request_with_http_basic看到请求中有身份验证标头并授权您成功.并且浏览器会在每个后续请求中将这些auth标头发送到此域(直到您关闭浏览器).
因此,如果您需要多次测试,可以关闭并重新打开浏览器.我相信只使用这些方法就不可能在每个请求上请求身份验证和身份验证,因为当应用程序从具有Auth标头的浏览器获取请求时,它无法在身份验证请求之后立即判断这是否是请求,或者这些是之前保留的标头.
但这可以通过使用cookie或存储在会话中的值以某种方式完成.
总结以上是内存溢出为你收集整理的ruby-on-rails – rails authenticate_or_request_with_http_basic全部内容,希望文章能够帮你解决ruby-on-rails – rails authenticate_or_request_with_http_basic所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)