しばらくの間、Facebook Graph API (認証に oauth 2.0 を使用) を正常に使用しています。ここで、開発者が同様の方法で API に接続できるようにする独自の API を作成する必要があります。私はさまざまなライブラリを調べましたが、もう少し無駄のないものが欲しいので、自分で作成することにしました。Facebookでユーザーを認証する必要があるコードを見ると、比較的単純に見えますが、軌道に乗っていない場合は修正してください。
まず、消費者がリダイレクトする必要がある安全なページを提供する必要があります。例: https://api.mydomain.com/oauth/authorize?client_id=CONSUMER_KEY&redirect_url=CALLBACK_URL。ユーザーはアプリケーションを確認し、クエリ文字列に oauth_token を使用して、コールバック URL で提供された URL にリダイレクトします。ここでoauth_token用にランダムな一意の文字列を生成し、この特定の消費者のユーザーに対して保存できると思います(編集:以下の回答を参照してください。これは、ユーザーではなく各消費者アプリケーションに固有でなければなりません)。
これがステップ 1 です。ここで、消費者が Web リクエストをトリガーする 2 つ目の安全なページを提供する必要があります。例: https://api.mydomain.com/oauth/access_token?client_id=CONSUMER_KEY&client_secret=CONSUMER_SECRET&oauth_token=OAUTH_TOKEN_RETURNED_ABOVE。これにより、コンシューマーは上記で返された oauth_token をアクセス トークンと交換できます。ここでも、単純にランダムな一意の文字列を生成し、この特定のコンシューマーのユーザーに対して保存します。
これで、私の API は、それを使用しているユーザーに固有の情報を取得しようとするメソッドの access_token を受け入れるようになります。
物事を正しく理解しているかどうか知りたいです。そうであれば、OAuth 2.0 仕様は非常に些細なことのように思えます。また、なぜ oauth_token を access_token と交換する必要があるのでしょうか? 私は自分の考えを持っていますが、誰かがこれを明確にするのを助けることができれば幸いです。
完全に間違っている場合に、先に進んで時間を無駄にしたくないので、フィードバックをいただければ幸いです。
ありがとう