リダイレクトURIとは何ですか? OAuth2.0用のiOSアプリにはどのように適用されるのですか?

初心者のプログラマーの方、無知をお許しください。説明していただけると助かります。)

あるOAuth 2.0サービスのチュートリアルを読もうとしたのですが、リダイレクトURIがよくわかりません...私の特殊な状況では、あるサービスに対してOAuth 2.0を使うiPhoneアプリを作ろうとしているとします。App IDは生成されているのですが、APIキーを生成するために何らかのリダイレクトURIを提供する必要があります。

これは、自分でどこかにホストしなければならないURLなのでしょうか?名前が示すように、リダイレクトURLはどこかで誰かを"redirect"することになっていると思います。私の推測では、ユーザーがサービスにログインした後にリダイレクトされるURLではないかと考えています。

しかし、その推測が正しいとしても、もうひとつ理解できないことがあります。ユーザーログインのためにブラウザに送った後、どうやって私のアプリを再び開くことができるのでしょうか?

ソリューション

読んでみてください。

http://www.quora.com/OAuth-2-0/How-does-OAuth-2-0-work

または、もっとシンプルで簡単な説明もあります。

http://agileanswer.blogspot.se/2012/08/oauth-20-for-my-ninth-grader.html

リダイレクトURIは、アプリのコールバックエントリポイントです。FacebookのOAuthの仕組みを考えてみましょう。エンドユーザーがパーミッションを受け入れた後、アプリに戻るためにFacebookから"something"が呼び出されなければなりませんが、その"something"がリダイレクトURIです。さらに、リダイレクトURIは、アプリの最初のエントリーポイントとは異なるものでなければなりません。

このパズルのもう一つの重要なポイントは、ウェブビューに与えられたURLからアプリを起動することができるということです。これを実現するために、私は単にここにあるガイドに従いました。

http://iosdevelopertips.com/cocoa/launching-your-own-application-via-a-custom-url-scheme.html

そして

http://inchoo.net/mobile-development/iphone-development/launching-application-via-url-scheme/

注:これらの最後の2つのリンクでは、"http://" はモバイルのサファリを開く際に動作しますが、"tel://" はシミュレータでは動作しません

最初のアプリで、私は

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"secondApp://"]];

2つ目のアプリでは、URL識別子に私の会社を指定して、URL Schemeの名前として"secondApp"("secondApp://"ではありません)を登録しています。

解説 (16)

例えば、facebookでアプリのアクセストークンを取得するには、リダイレクトされたURIをサブミットする必要がありますが、これはfacebookアプリを作成したときに指定したアプリドメインにすぎません。

解説 (0)

Facebook SDKを使用している場合は、Facebookのアプリ管理ページでリダイレクトURIに何かを入力する必要はありません。 Facebookのアプリ管理ページでリダイレクトURIに何かを入力する必要はありません。ただ、iOSアプリの URLスキームを設定するだけです。 アプリのURLスキームは、"fbxxxxxxxxxxx"という値でなければなりません。 はfacebookで確認されたアプリのIDです。 iOSアプリのURLスキームを設定するには、アプリの設定の情報タブにある をクリックし、URL Typeを追加します。

解説 (0)