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


184

ここの初心者プログラマ、無知と説明はご容赦ください:)

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

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

しかし、その仮定が正しいとしても、他に1つは理解できません。ユーザーログインのためにブラウザーにアプリを送信した後で、アプリを再度開くにはどうすればよいですか。

回答:


194

これを読む:

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から「何か」を呼び出してアプリに戻る必要があり、その「何か」がリダイレクトURIです。さらに、リダイレクトURIはアプリの初期エントリポイントとは異なる必要があります。

このパズルのもう1つの重要な点は、webviewに指定された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識別子として登録しています。


1
それで、redirect_uriで与えられたあなた自身のウェブサイトをセットアップする必要があります、それは正しいですか?
ハギー、2014

1
@huggie(iOSアプリのコンテキスト)-いいえ、幸いなことに、独自のWebサイトは必要ありません。あなたはあなたのiOSアプリがウェブブラウザに与えられたURLから開くことができることを理解する必要があるだけです。:読み取りiosdevelopertips.com/cocoa/...を
デヴィッド・T.

1
@Nazerkeそれはおそらくあなたのためにその「://」をすでに追加しています。したがって、名前を設定するだけでよい
David T.

1
誰かのPLSのは、この答えを修正- architecture-soa-bpm-eai.blogspot.com.br/2012/08/...はもはや存在しない
レオ

2
@DavidT様 素晴らしい答え。彼らの唯一の懸念、そしてあなたがどのように使用するように強制されているURIのためのconfigureスキームにある、私を救うことを願ってhttp://のような、[YouTube, Instagram, LinkedIn]http://localhost/oauth2callbackリダイレクトなどの登録を試みましたが、スキームhttp、localhost、またはoauth2callbackが機能しません
Tal Zion

9

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



2

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.