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 モデルのみが使用されます。ただし、これにはアプリで別の認証コードを使用する必要があります。
誰でもコメントがあり、自分の経験を共有できますか? ありがとう