どちらがより安全で、なぜですか?
どちらも安全で、使用している環境によって異なります。
サーバーがアクセストークンを直接発行できるときに、1つのワークフローに追加の手順(トークンの認証コードの交換)が追加される理由がわかりません。
簡単です。あなたのクライアントは安全ではありません。詳しく見てみましょう。
に対してアプリケーションを開発していると考えてInstagram API
、APPを登録して必要なInstagram
ものAPI's
を定義します。Instagram
を提供しclient_id
、client_secrect
あなたのウェブサイトであなたは言うリンクを設定しました。「来て、私のアプリケーションを使用する」。これをクリックすると、Webアプリケーションはを2回呼び出す必要がありますInstagram API
。
First
Instagram Authentication Server
以下のパラメータでリクエストを送信します。
1. `response_type` with the value `code`
2. `client_id` you have get from `Instagram`
3. `redirect_uri` this is a url on your server which do the second call
4. `scope` a space delimited list of scopes
5. `state` with a CSRF token.
あなたは送信しませんclient_secret
、あなたはクライアントを信頼することができませんでした(あなたとあなたのアプリケーションを使用しようとするユーザーと彼のブラウザ)。クライアントは、URLまたはJavaスクリプトを確認して、client_secrect
簡単に見つけることができます。これが、別のステップが必要な理由です。
あなたは受けるcode
とstate
。code
ここでtemporary
、任意の場所に保存されていません。
次にsecond
、Instagram API
(サーバーから)を呼び出します
1. `grant_type` with the value of `authorization_code`
2. `client_id` with the client identifier
3. `client_secret` with the client secret
4. `redirect_uri` with the same redirect URI the user was redirect back to
5. `code` which we have already received.
呼び出しがサーバーから行われるclient_secret
とcode
、ユーザーがclient_id
リソースの使用を許可したことを示す安全な方法(これがどのように表示されるか)を使用できます。
それに応じて、 access_token