0

私はここで迷子になりました - 何を質問すればよいかさえよくわかりません。

ここで説明されているように、API を作成しました: http://railscasts.com/episodes/350-rest-api-versioning?view=asciicast

ログインが必要なサイトです。

ログインしているときにブラウザからAPIにアクセスできますが、問題ありません。ここに私のルートがあります:

## API
namespace :api do
  namespace :v1 do
    resources :users, :sessions
  end
end

私が依頼されたのは、外部の関係者が Api キーとオプションのクエリ パラメータと userId を使用して json を要求できるようにすることです。

ユーザー名とパスワードを使用しても、サイト (https) をカールしてログアウトにリダイレクトしようとしました。

私の上司は、userId、apikey、および params を受け入れ、curl でき、curl からポストされたパラメーターを介してデータを返すルート URL のパブリック フォームを提案しました。

これを行う方法や、ログインせずにデータを呼び出せるようにする方法さえわかりません。この他のスクリーンキャストを見ましたhttp://railscasts.com/episodes/353-oauth-with-doorkeeper (有料のバージョン) しかし、彼のインタラクションにより、別の Rails アプリが元のアプリとやり取りできるようになります。

基本的に、これを達成する方法に関する情報はどこで探すべきですか? 他の提案、または質問をより明確にするために提供できる情報はありますか?

お時間をいただきありがとうございます。

4

1 に答える 1

0

もっとRailsCast!Ryan Bates はhttp://railscasts.com/episodes/352-securing-an-api?view=asciicastでカバーしています

要約すると、次のようになります。

  • APIを呼び出すクライアントが自分自身を識別する必要があるかどうか、または何らかの方法で認証する必要があるかどうかを判断する必要があります
  • クライアントのユーザー (API を呼び出している) がシステムで認証する必要があるかどうかを判断する必要があります。つまり、「ユーザー」が存在するかどうかです。

一部の API では、呼び出し元がクエリの一部として API キーを渡すことができます。他のものは、より洗練された認証プロセス (通常は OAuth) を必要とし、これは少しトリッキーです。

一部の API はユーザー固有の情報を提供します。その場合、ユーザーがログインできること、パスワードを変更できること、忘れたパスワードを思い出すことができることなどを確認する方法が必要になります。そのための優れた RailsCast もあります (または、Devise gem を使用することもできますが、主に API を実装している場合はお勧めしませんが、Devise の長所ではありません)。

この部分はご存じだとcurl思いますが、クライアントが API に対して行う HTTP リクエストをシミュレートするだけであり、(--includeオプションを使用して) 返された応答に関する情報 (ヘッダー、Cookie など) を表示できます。

詳細については、Google の「rails api 認証」を参照してください。

于 2012-12-05T22:34:21.037 に答える