📅  最后修改于: 2023-12-03 15:19:51.900000             🧑  作者: Mango
HTTP基本身份验证是一种经典的用户验证方式,可用于控制Web应用程序的访问权限。在Ruby on Rails 2.1中,它非常容易集成到您的应用程序中。
在Ruby on Rails 2.1中,你可以在controller的action中使用before_filter,把HTTP基本身份验证过滤器设为某一action的前置过滤器。
在 app/controllers/application_controller.rb
中添加以下方法:
class ApplicationController < ActionController::Base
before_filter :authenticate
private
def authenticate
authenticate_or_request_with_http_basic do |username, password|
username == "admin" && password == "secret"
end
end
end
该代码将一个身份验证过滤器添加到应用程序的 ApplicationController 类中。这个过滤器要求用户输入用户名和密码,并在输入错误时返回 HTTP 401 Unauthorized。在此示例中,用户名和密码均为 admin
和 secret
,您需要自己更改它们。
现在,您需要在controller中为index
和show
action指定应用该过滤器:
class ProductsController < ApplicationController
before_filter :authenticate, :only => [:index, :show]
def index
# Code for index action
end
def show
# Code for show action
end
end
在这个例子中,身份验证将仅应用于index和showaction,而其他action将不会有这种限制。
为更改生效,您需要重启Web服务器(例如,Webrick或Mongrel):
$ rails server
现在,你可以在你的浏览器中访问指向index
或show
action的URL。当尝试访问这些URL时,您将被要求输入您在之前代码中设置的的用户名和密码。
Ruby on Rails 2.1内置的HTTP基本身份验证是保护您的Web应用程序简单方法。通过在应用程序控制器中添加简单的before_filter,即可实现HTTP基本身份验证。
以上为我的介绍,如有疏漏或错误,请指正。