Che cos'è un URI di reindirizzamento? come si applica all'app iOS per OAuth2.0?


184

Programmatore principiante qui, scusate l'ignoranza e le spiegazioni saranno davvero belle :)

Ho provato a leggere i tutorial per un determinato servizio OAuth 2.0, ma non capisco questo URI di reindirizzamento ... nel mio particolare contesto, 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 devo fornire una sorta di URI di reindirizzamento per generare la chiave API.

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

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

Risposte:


194

Leggi questo:

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

o una spiegazione ancora più semplice ma rapida:

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

L'URI di reindirizzamento è il punto di ingresso di richiamata dell'app. Pensa a come funziona OAuth per Facebook: dopo che l'utente finale accetta le autorizzazioni, "qualcosa" deve essere chiamato da Facebook per tornare all'app e che "qualcosa" è l'URI di reindirizzamento. Inoltre, l'URI di reindirizzamento dovrebbe essere diverso dal punto di ingresso iniziale dell'app.

L'altro punto chiave di questo puzzle è che potresti lanciare la tua app da un URL assegnato a una visualizzazione web . 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: //" funziona nell'aprire il safari mobile ma "tel: //" non funziona nel simulatore

nella prima app, chiamo

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

Nella mia seconda app, registro "secondApp" (e NON "secondApp: //") come nome dello schema URL, con la mia azienda come identificatore URL.


1
Quindi, è necessario impostare il proprio sito Web fornito in redirect_uri, è corretto?
Huggie,

1
@Huggie nel contesto delle app iOS - no, fortunatamente, non hai bisogno del tuo sito web. devi solo capire che la tua app iOS può essere aperta da un URL fornito al browser web. leggi: iosdevelopertips.com/cocoa/…
David T.

1
@Nazerke probabilmente aggiunge che ": //" già per te. quindi devi solo inserire il nome
David T.

1
qualcuno pls risolve questa risposta - architecture-soa-bpm-eai.blogspot.com.br/2012/08/… non esiste più
Leo

2
Ciao @DavidT. Bella risposta. Riguardano solo, e spero che tu mi possa salvare, è come configurare schemi per URI che sono costretti a usare http://, come [YouTube, Instagram, LinkedIn]? Ho provato a registrarmi, ad esempio http://localhost/oauth2callback, il reindirizzamento e lo schema http, localhost o oauth2callback ma non funziona
Tal Zion

9

uri reindirizzato è la posizione in cui l'utente verrà reindirizzato dopo aver effettuato correttamente l'accesso all'app. ad esempio per ottenere il token di accesso per la tua app su Facebook devi sottoporre a reindirizzamento l'uri che non è altro che il dominio dell'app che fornisci quando crei la tua app Facebook.



2

Se stai usando Facebook SDK, non devi preoccuparti di inserire nulla per reindirizzare l'URI sulla pagina di gestione delle app di Facebook. Basta impostare uno schema URL per la tua app iOS. Lo schema URL dell'app dovrebbe essere un valore "fbxxxxxxxxxxx" in cui xxxxxxxxxxx è l'ID dell'app identificato su Facebook. Per configurare lo schema URL per l'app per iOS, vai alla scheda Informazioni delle impostazioni dell'app e aggiungi Tipo di URL.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.