17

rails-api gem special を使用して、API のみのアプリケーションを作成したいと考えています。認証メカニズムを提供するために、 Railscasts #352で説明されている組み込みのauthenticate_or_request_with_http_tokenメソッドを使用したいのですが、このメソッドはここにありません。

on rails-api gemの経験がある人はいますか?

PS私はこのアプローチを見ることができますが、これは本番環境に対応していますか?

4

2 に答える 2

49

rails-api を使ってサービスを開発中です。まだ展開していませんが、その時が近づいており、テストで問題は発生していません。rails-api は削除されているため、使用したい必須ではないモジュールを含める必要があります。次のように ApplicationController で authenticate_or_request_with_http_token を使用しています。

include ActionController::HttpAuthentication::Token::ControllerMethods

def authenticate
  authenticate_or_request_with_http_token do |token, options|
    apiKey = ApiKey.where(auth_token: token).first
    @current_user = apiKey.user if apiKey
  end
end 

トークンだけが必要な場合は、便利なメソッド token_and_options があります。

include ActionController::HttpAuthentication::Token

def current_user
  api_key = ApiKey.where(auth_token: token_and_options(request)).first
  User.find(api_key.user_id) if api_key
end
于 2012-07-02T19:27:48.327 に答える
2

READMEから:

基本認証、ダイジェスト認証、およびトークン認証: Rails には、3 種類の HTTP 認証が標準でサポートされています。

そうです、これは本番環境に対応しています (結局のところ、Rails のままです)。リンク先の例がその方法です (秘訣は、Action Pack から必要なものだけを含めることです)。

于 2012-06-27T15:37:53.950 に答える