2012-11-08 114 views
147

這裏初學編程的,請原諒無知&解釋將是非常好的:)什麼是重定向URI?它如何適用於OAuth2.0的iOS應用程序?

我試圖閱讀教程一定的OAuth 2.0服務,但我不明白這個重定向URI ......在我特定的上下文,假設我正在嘗試構建一個使用OAuth 2.0進行某些服務的iPhone應用程序。我有一個生成的應用程序ID,但我需要提供某種重定向URI來生成API密鑰。

這是不是我應該某處舉辦自己的URL?顧名思義,我認爲重定向網址應該在某處「重定向」某人。我唯一的猜測是,它是用戶登錄到服務後重定向到的URL。

然而,即使這種假設是正確的,我不明白一兩件事 - 怎麼我的應用程序被再次打開,我送他們到瀏覽器的用戶登錄後?

回答

168

閱讀:

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應該與應用的初始入口點不同。

這個難題的另一個關鍵點是,你可以從給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://」,在打開手機的工作原理Safari瀏覽器,但「電話://」不模擬器

在第一個應用程序的工作,我叫

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

在我的第二個應用程序,我註冊「secondApp」(而不是「secondApp://」)作爲URL方案的名稱,與我公司作爲URL標識。

+25

我真的很感謝你把時間得到這個答案一起! –

+1

因此,您確實需要在redirect_uri中設置您自己的網站,這是否正確? – huggie

+1

@huggie在iOS應用程序的上下文中 - 不,幸運的是,你不需要你自己的網站。你只需要意識到你的iOS應用程序可以從給定的Web瀏覽器的URL打開。閱讀:http://iosdevelopertips.com/cocoa/launching-your-own-application-via-a-custom-url-scheme.html –

6

重定向的URI就是成功後登錄到您的應用程序的用戶將被重定向的位置。例如,要在Facebook中爲您的應用程序獲取訪問令牌,您需要重定向重定向的uri,這不僅是您在創建Facebook應用程序時提供的應用程序域。

1

如果您正在使用Facebook SDK,則無需爲Facebook上的應用管理頁面上的重定向URI輸入任何內容 而煩惱。只需爲您的iOS應用設置一個 URL方案。 您的應用的URL方案應該是值「fbxxxxxxxxxxx」,其中xxxxxxxxxxx爲 您在facebook上標識的應用ID。 要爲iOS應用設置URL方案,請轉至應用設置 的「信息」選項卡並添加URL類型。

相關問題