2017-10-27 11 views
0

PHPとJSの両方でAPIを使用した経験がありますが、わかりにくい問題が発生しました。ユーザーが他のユーザーに表示するためのAPIの承認

私はDeviantARTで主に公開している人物のイメージポートフォリオを作成しており、WordPressをCMSとして使用しています。 DeviantART APIを使って写真やメタデータを取り出し、サイトで使用することができれば、ポートフォリオサイトのすべてを再パブリッシュする必要はありません。

明らかに、APIは(暗黙的またはそれ以外)の認証を要求しますが、実際に実装する方法は混乱しています。ポートフォリオの所有者が写真を見るためにログインしているのではなく、 他の人がページを訪問すると、私はAPIにGETリクエストを送信してすべての画像を取得します。

ポートフォリオの所有者に認証を求めるプロンプトが表示されたら、トークンが期限切れになるまでページが機能しますか?私はそれを扱う最良の方法が何であり、誰かがページを見てオーナーの写真を見ることができるかどうかは分かりません。どんな助けでも大いに評価されます。ありがとう!

〜ニール・

+0

'私は、ブラウザまたはサーバからAPI'にGETリクエストを送信しますか? –

+0

私はどちらかと思います...それは私がなぜ助けを求めているのかのようなものです。私はPHPまたはJavaScriptでページテンプレートに書き込むことができます。または、私はそれをwordpress用のプラグインに書き込むと仮定します。この場合、何が適切かはわかりません。ユーザーがデータを表示するためにログインした場合は、すべてのビューアーに対してユーザーの介入なしにそのデータを公開する方法を探しています。 –

答えて

0

私は、これはGET、セキュリティ面の懸念すべきthis.SinceのためのPOSTメソッドを使用することをお勧めしますが方法ではありません。

Haventは前述のAPIを回避しますが、認証キーを一定に保ち、POSTとしてリクエストするたびに使用するのはどうですか?リクエストにcurlまたはajaxを使用できます。 EXのために

$fields = ['q' => API_ACCESS_KEY,'portfolio_id' => 2]; 
$headers = []; 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, API_URL); 
curl_setopt($ch, CURLOPT_POST, true); 
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields); 

$resultSet = curl_exec($ch); 
curl_close($ch); 
+0

2つの質問... 1)APIは、特にバックエンド_(つまり、 'api.com/gallery/all')_を' GET'と定義しています。その場合でも 'POST'は可能ですか? 2)安全ではないアクセストークンを取得するためにクライアントの秘密などを保存する必要はありませんか? authのオプションは、Oauth2アクセストークン、クライアント資格認可、または暗黙的な許可です。 –

+0

私はあなたが今何を意味しているのか理解していると思います...アクセストークンを取得するための 'POST'と実際のAPI呼び出しのための' GET'。質問はまだ残っています。どこにクライアントの資格情報を保存しますか? –

関連する問題