0

ユーザーがアカウントを持つことができる Web サイトを持っています。サード パーティの開発者は、oauth2.0 フローを使用して、サイト上のユーザーのアカウントにアクセスできます。

サードパーティの開発者が oauth2.0 フローを実装してユーザーのアカウントにアクセスできるようにする iOS SDK を構築しています。

私は次のことを想定していました。

  • ユーザーが iPhone アプリのボタンをクリックします。
  • mysite.com/oauth2 (oauth2.0 フロー ページのある私の Web サイト) にアクセスする Web ビューが表示されます。
  • ログイン/サインアップして、[アクセスを許可] をクリックします (私のサイトのアカウントへの開発者アクセスを許可するため)。
  • Web ビューがコード付きの URL にリダイレクトされる
  • どういうわけか、システムはそのコードを使用して私のサイトへの API 呼び出しを行い、そのユーザーのアクセス トークンを取得して、開発者がそのユーザーのアカウントにアクセスできるようにします。問題は、開発者がアプリケーションの秘密鍵を使用してこの API 呼び出しを行う必要があることです。セキュリティ上の理由から、開発者がアプリケーション キーをアプリに保存することは望ましくありません。

最後のステップには 2 つの可能性があります。

  1. Webview は開発者のサーバーにリダイレクトします。Developer Server はコードを取得し、サーバーへの API 呼び出しを行って、ユーザーがアカウントを作成できるようにするためのアクセス トークンなどを取得し、URL ("app://access_token:....) にリダイレクトします。 webview はそれ自体を閉じるシグナルとして認識し、iPhone アプリはその URL からアクセス トークンを取得します。

また

  1. ユーザーが [Grant Access] をクリックすると、Webview がランダムな URL にリダイレクトされます。コードはURLにあります。Webview は、URL にコードがあることを認識します。親ビュー コントローラーでデリゲート関数を呼び出し、その関数にコードを渡した後、自身を閉じます。親View Controller関数は、そのコードを開発者サーバーに送信し、開発者サーバーは(コードを使用して)私のサーバーにAPI呼び出しを行い、アクセストークンを取得します。

上記を達成するための最良の方法は何ですか?

4

0 に答える 0