2012-11-08 44 views
147

Principiante programmatore qui, si prega di perdonare l'ignoranza & spiegazioni saranno veramente bello :)Cos'è un URI di reindirizzamento? come si applica all'app iOS per OAuth2.0?

Ho cercato di leggere il tutorial per un determinato servizio di OAuth 2.0, ma non capisco questo reindirizzamento URI ... nella mia contesto particolare, diciamo che sto cercando di creare un'app per iPhone che utilizza OAuth 2.0 per alcuni servizi. Ho un ID app che è stato generato, ma ho bisogno di fornire un qualche tipo di URI di reindirizzamento per generare la chiave API.

È un URL che dovrei ospitare da qualche parte ?? Come suggerisce il nome, penserei che l'URL di reindirizzamento debba "reindirizzare" qualcuno da qualche parte. La mia unica ipotesi è che sia l'URL a cui un utente viene reindirizzato dopo aver effettuato l'accesso al servizio.

Tuttavia, anche se questa supposizione è corretta, non capisco un'altra cosa: come posso riaprire la mia app dopo averli inviati al browser per l'accesso utente?

risposta

168

Leggi questo:

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

o una spiegazione ancora più semplice ma veloce:

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

il redirect URI è il punto di ingresso di callback della app. Pensa a come funziona OAuth per Facebook: dopo che l'utente finale ha accettato le autorizzazioni, "qualcosa" deve essere richiamato da Facebook per tornare all'app e "qualcosa" è l'URI di reindirizzamento. Inoltre, l'URI di reindirizzamento dovrebbe essere diverso dal punto iniziale di accesso dell'app.

L'altro punto chiave di questo puzzle è che è possibile avviare l'app da un URL dato a una webview. Per fare questo, ho semplicemente seguito la guida qui:

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

e

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

nota: su questi ultimi 2 collegamenti, "http: //" Lavori in apertura cellulare safari ma "tel: //" non funziona nel simulatore

nella prima applicazione, che io chiamo

Nella mia seconda app, registro "secondApp" (e NON "secondApp: //") come nome di Schema URL, con la mia azienda come identificativo URL.

+25

ho veramente apprezzato mettendoti tempo per ottenere questa risposta insieme! –

+1

Quindi, è necessario impostare il proprio sito Web indicato in redirect_uri, è corretto? – huggie

+1

@huggie nel contesto delle app iOS - no, per fortuna, non hai bisogno del tuo sito web. devi solo rend contoere che la tua app per iOS può essere aperta da un URL dato al browser web. leggi: http://iosdevelopertips.com/cocoa/launching-your-own-application-via-a-custom-url-scheme.html –

6

uri reindirizzato è il percorso in cui l'utente verrà reindirizzato dopo aver effettuato correttamente l'accesso alla tua app. ad esempio per ottenere il token di accesso per la tua app in facebook è necessario sottomettere uri reindirizzato che non è altro che il dominio dell'app che fornisci quando crei la tua app per Facebook.

1

Se si utilizza Facebook SDK, non è necessario preoccuparsi di immettere nulla per URI di reindirizzamento nella pagina di gestione dell'app di Facebook. Basta configurare uno schema URL per la tua app iOS. Lo schema URL della tua app deve essere un valore "fbxxxxxxxxxxx" dove xxxxxxxxxxx è l'ID app identificato su Facebook. Per configurare lo schema URL per la tua app iOS, vai alla scheda informazioni delle impostazioni dell'app e aggiungi Tipo URL.

Problemi correlati