2015-04-05 147 views
2

我試圖製作一個iOS,它將使用Uber API來執行諸如獲取遊樂設施等事情。我正在嘗試在iPhone上實現OAuth 2.0,而不使用任何服務器端幫助。優步API iOS OAuth 2.0

這可能嗎?有沒有人做過這個?

這裏有一些參考:

尤伯杯認證:https://developer.uber.com/v1/auth/

的OAuth 2.0:https://aaronparecki.com/articles/2012/07/29/1/oauth2-simplified

+0

它應該是可能的,OAuth 2.0允許。也許你可以從UberKit獲得一些啓發:https://github.com/sachinkesiraju/UberKit。它使用集成的WebView進行用戶登錄。至於重定向URI,您可能需要在您的應用程序中創建特定的重定向URI,並將其用作Uber應用程序配置中的指定重定向URI(例如:myuberapp:// oauth)。 – Romain 2015-04-05 19:41:07

+0

謝謝,我會嘗試。 – Gary 2015-04-06 13:41:37

回答

7

是的,這是可能的。我能夠使用Uber API爲我的應用程序配置OAuth2。以下是一步一步的指示:

  1. 在你的應用程序,重定向到https://login.uber.com/oauth/authorize與您的client_id和response_type=code爲了讓用戶授權您的應用程序。
  2. 成功授權後,優步將重定向到您的redirect_uri(您可以指定任何redirect_uri,包括用於測試目的的localhost:xxxx等),以便爲您提供一次性使用並且有效期爲10分鐘的認證代碼。實現回調以檢索此授權碼。
  3. 使用來自步驟2的有效授權碼,發出POST請求以交換訪問令牌。作爲一個簡單的檢查,我會建議使用curl來確認訪問令牌的有效性。例如: curl -F 'client_secret=YOUR_CLIENT_SECRET' \ -F 'client_id=YOUR_CLIENT_ID' \ -F 'grant_type=authorization_code' \ -F 'redirect_uri=YOUR_REDIRECT_URI' \ -F 'code=AUTHORIZATION_CODE' \ https://login.uber.com/oauth/token

  4. 成功交換後,使用訪問令牌作爲後續端點調用的「授權」標頭的值。例如: curl -H 'Authorization: Bearer YOUR_ACCESS_TOKEN' 'https://api.uber.com/v1/products?latitude=37.7759792&longitude=-122.41823'

+0

你能爲此提供swift代碼嗎?我在我的應用程序 – 2015-04-23 11:17:54

+0

實施這個快速點擊這裏http://stackoverflow.com/questions/29895238/uber-invalid-oauth-2-0-credentials-provided-uber-authentication-in-ios-swift – 2015-05-18 11:54:15

+0

請提供回調代碼爲Android – gStephin 2016-10-20 05:18:53