1

Authlogic Github の例に従って、User モデルに act_as_authentic と UserSession モデルを実装する Rails 2.3.x アプリがあります。iPhoneからのアクセスを許可するAPIを実装しています。https 経由で HTTP 基本認証を使用します (単一のアクセス トークンを実装しません)。各 API 呼び出しには、アクセス用のユーザー名/パスワードが必要です。

たとえば、 http://username:password@localhost:3000/books.xmlを呼び出して API にアクセスできます。単一のアクセス トークンを使用する場合、Authlogic は持続しません。しかし、Authlogic が API 呼び出し用のセッションを作成すると思われる HTTP Basic を使用していますが、これは API メソッドには使用されません。したがって、作成した API 呼び出しごとに、新しいセッション オブジェクトが作成されます。したがって、これによりサーバーリソースがかなり速くロードされるように見えます。悪い考えのように聞こえます。

別の方法は、Rails の authenticate_or_request_with_http_basic を API コントローラーに使用することです。before_filter を追加する例:

def require_http_auth_user
    authenticate_or_request_with_http_basic do |username, password|
      if @current_user = User.find_by_email(username) 
        @current_user.valid_password?(password)
      else
        false
      end
    end
 end

これにより、Authlogic UserSession がバイパスされ、User モデルのみが使用されます。ただし、これにはアプリで別の認証コードを使用する必要があります。

誰でもコメントがあり、自分の経験を共有できますか? ありがとう

4

1 に答える 1

1

UserSession をモデルオブジェクトにするだけで簡単になりました。お役に立てれば。リンクに含まれる比較的効率的な使用のコードサンプル、他にお手伝いできることがあればlmk。

http://www.corprew.org/blog/2010/01/27/authlogic-and-objectiveresource/

于 2010-04-23T21:37:53.320 に答える