web-dev-qa-db-ja.com

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

ここで初心者プログラマー、無知を許してください&説明は本当にいいでしょう:)

私は特定のOAuth 2.0サービスのチュートリアルを読もうとしましたが、このリダイレクトURIを理解していません...特定のコンテキストでは、OAuth 2.0を使用してiPhoneアプリケーションを構築しようとしているとしましょう。 。生成されたApp IDがありますが、APIキーを生成するために何らかのリダイレクトURIを提供する必要があります。

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

しかし、その仮定が正しいとしても、他に1つ理解できないことがあります。ユーザーログインのためにブラウザに送信した後に、アプリを再度開く方法はありますか。

165
David T.

これを読む:

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はアプリのコールバックエントリポイントです。 OAuth for Facebookがどのように機能するかを考えてみてください - エンドユーザーが許可を受けた後、アプリに戻るためには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スキーマの名前として "secondApp"(そして "secondApp://"ではない)を登録し、私の会社をURL識別子として登録します。

185
David T.

OAuth 2.0の遊び場を見てください。プロトコルの概要がわかります。基本的には(他のアプリと同じように)プロトコルに関連する手順を示す環境です。

https://developers.google.com/oauthplayground/

8
Reckoner

リダイレクトuriは、アプリへのログインが成功した後にユーザーがリダイレクトされる場所です。たとえば、facebookでアプリのアクセストークンを取得するには、リダイレクトuriをサブミットする必要があります。これは、facebookアプリを作成するときに提供するアプリドメインだけではありません。

7
Dhirender Tyagi

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

2
Kunal Khanna