Rails 3 HTTP 摘要认证

Posted

技术标签:

【中文标题】Rails 3 HTTP 摘要认证【英文标题】:Rails 3 HTTP digest authentication 【发布时间】:2010-04-13 20:24:55 【问题描述】:

Rails 3 是否仍支持 HTTP 摘要身份验证?

我在 Rails 2.3.5 中尝试了以下代码,它可以工作。

class Admin::BaseController < ApplicationController
  before_filter :authenticate
  USERS =  "lifo" => "world" 
  def authenticate
    authenticate_or_request_with_http_digest("Application") do |name|
      USERS[name]
    end
  end
end

现在,Rails 3.0.0.beta 中的相同内容返回错误:

can't convert nil into String

是我遗漏了什么还是 Rails 3 中的错误? HTTP 基本身份验证工作正常。

【问题讨论】:

【参考方案1】:

Rails beta2 中的同样问题。

快速而肮脏的修复:

添加

self.config.secret = "result of rake secret"

之前

authenticate_or_request_with_http_digest("Application")

【讨论】:

以上是关于Rails 3 HTTP 摘要认证的主要内容,如果未能解决你的问题,请参考以下文章

前端学HTTP之摘要认证

WebApi接口安全认证——HTTP之摘要认证

WebApi接口安全认证——HTTP之摘要认证

HTTP 基本认证(basic auth)和摘要认证(digest auth)区别

HTTP 基本认证(basic auth)和摘要认证(digest auth)区别

CakePHP 3 下的摘要认证