Authlogic - 通过基本HTTP身份验证进行身份验证

时间:2009-10-22 08:43:51

标签: ruby-on-rails authlogic

我想使用“authenticate_ with_ http_ basic”,但我无法得到它 工作

在我的RoR应用程序中,Authlogic工作正常,我正在使用用户会话。虽然保持这种方法现在我需要使用authenticate_with_http_basic.I有一个iPhone SDK应用程序,现在我需要从我的webapp获取一些产品并显示为列表。所以我假设我需要像这样将请求发送到我的webapp; http://username:password@192.168.1.9/products/

所以我的问题是验证这个用户名和密码以及我需要对UserSession控制器做些什么?

2 个答案:

答案 0 :(得分:5)

您不需要对UserSessionController执行任何操作,因为该控制器只会处理登录表单提交和注销。

Authlogic和authenticate_with_http_basic彼此无关。如果要通过HTTP basic进行身份验证,只需创建一个方法来使用Rails提供的方法进行身份验证,并将该方法放在before_filter上。通过HTTP身份验证登录,我认为每个请求都必须使用用户名和密码。

最后,你的ProductsController会是这样的

class ProductsController < ApplicationController
  before_filter :authenticate_via_http_basic

  # In case you have some method to redirect user to login page, skip it
  skip_before_filter :require_authentication

  ...

  protected

  def authenticate_via_http_basic
    unless current_user
      authenticate_with_http_basic do |username, password|
        if user = User.find_by_username(username)
          user.valid_password?(password)
        else
          false
        end
      end
    end
  end

答案 1 :(得分:1)

通过HTTP Auth进行身份验证现已集成到AuthLogic中,默认情况下已启用。