使用rails-api的基本身份验证

时间:2012-05-03 17:59:46

标签: ruby-on-rails ruby-on-rails-3 basic-authentication

我确定我在这里做错了,但这就是我的应用程序控制器的样子:

class ApplicationController < ActionController::API                                                                                                                                                                                                        
  include ActionController::HttpAuthentication::Basic                                                                                                                                                                                                      
  include ActionController::MimeResponds                                                                                                                                                                                                                   

  http_basic_authenticate_with :name => "joeyjojo", :password => "shabadoo"
end

我无法弄清楚为什么我的http_basic_authenticate_with会抛出此错误:

undefined method `http_basic_authenticate_with' for ApplicationController:Class

我确信这很简单,但我没有看到。 MimeResponds在其他控制器中工作得很好。

2 个答案:

答案 0 :(得分:22)

您必须包含ActionController::HttpAuthentication::Basic::ControllerMethods才能使方法可用。 Here's the module in ActionController::Base

答案 1 :(得分:8)

如果您有Rails API,请将其添加到您的控制器:

  

包括ActionController :: HttpAuthentication :: Basic :: ControllerMethods

class YourController < ApplicationController

  include ActionController::HttpAuthentication::Basic::ControllerMethods
  http_basic_authenticate_with name: "username", password: "passwd123"

我正在使用Rails 4.2.4和我的ApplicationController:

class ApplicationController < ActionController::API