Restful身份验证使用authenticate_with_http_basic,但在网上搜索可以找到许多没有描述的页面.在官方
http://api.rubyonrails.org/,也可以找到,除了没有描述,没有评论,没有规格.
它有什么作用?似乎能够使用来自HTTP请求的login_name和密码,然后可以将它们与users表中的login_name和encrypted_password进行比较…但是这样,为什么甚至不存在一行描述?
解决方法
该方法允许您实现基本的http身份验证(弹出一个对话框,请求用户名和密码).通常是限制访问开发站点或管理区域的好方法.例如:
class AdminController < ApplicationController before_filter :authenticate def authenticate authenticate_or_request_with_http_basic('Administration') do |username,password| username == 'admin' && password == 'password' end end end
此功能将请求基本的http身份验证用户名和密码,或者输入后,实际上会检查验证是否正确.换句话说,这个函数将调用authenticate_with_http_basic或者它将调用request_http_basic_authentication.你可以阅读更多关于它,并看到更多的例子here.你通常会调用authenticate_or_request_with_http_basic,而不是调用authenticate_with_http_basic或request_http_basic_authentication,因为前一个函数将适用于后者功能.
P.S:authenticate_with_http_basic不使用POST变量,它使用头信息来获取用户名和密码(request.env [‘HTTP_AUTHORIZATION’]).您可以查看有关授权功能here的更多信息.