11

私はAPIを作成しましたが、誰がそれを使用するか、どのくらいの頻度で使用するかなどをある程度制御したいと思います。ユーザーがAPIを使用するためにキーを提供する必要があるように、APIキー戦略が必要です。しかし、私はそれを実装する方法がわかりません。ユーザーはユーザー名とパスワードで登録されます。私が考えたのは、ユーザーがログインしたときにUUIDを割り当てて、データベースのテーブルに格納することでした。次に、各リクエストにこのuuidが含まれ、サーバーで各リクエストでチェックされます。

しかし、これは正しくないようです。ドロップボックス、ツイッター、フェイスブックなどのAPIキーを作成するための手順を誰かが説明できますか?これを自分で実装してみたいです。

4

1 に答える 1

13

ドロップボックス、ツイッター、フェイスブックなどのAPIキーを作成するための手順を誰かが説明できますか?これを自分で実装してみたいです。

APIキーの生成

  1. 使用したい暗号化/復号化方法を選択してください
  2. 暗号化するにデータに追加するソルトを選択します
  3. 暗号化された文字列内に必要なデータ(タイムスタンプ、Uid、ロールなど)を決定します。タイムスタンプを使用すると、ある時間より古いキーからのリクエストを制限できるため、タイムスタンプはこれの最も有用な部分です。生成される新しいキー。
  4. 復号化したら後で解析できるものにバンドルします。jsonオブジェクトを使用する人もいれば、文字で区切られた文字列を使用する人もいます

注:のように復号化可能なキーにしたくない場合は、ハッシュ化されているため、解読が非常に困難です。次の戦略に従うだけです。一連の手順を実行して、ハッシュ化されていないデータ文字列を作成しますsha1("some-secret"."some-other-bit-of-info"."etc"."etc")。次に、APIコンシューマーは、独自のキーを生成する責任を負います。したがって、彼らはそれを構築するために必要な部品/情報を持っている場合にのみアクセスできます。

APIの使用

StripeのAPIを適切な例として取り上げます。

  1. 承認リクエストを行う:APIキーが返されます。" curlは-uフラグを使用して基本認証クレデンシャルを渡します(APIキーの後にコロンを追加すると、パスワードの入力を求められなくなります)。 " --Stripe Docs

  2. それ以降のすべてのリクエストと一緒にそのキーを送信します。

于 2013-01-04T00:01:54.073 に答える