Apa itu redirect URI? bagaimana itu berlaku untuk aplikasi iOS untuk OAuth2.0?

184

Programmer pemula di sini, maafkan ketidaktahuan & penjelasan akan sangat bagus :)

Saya sudah mencoba membaca tutorial untuk layanan OAuth 2.0 tertentu, tetapi saya tidak mengerti URI pengalihan ini ... dalam konteks khusus saya, katakanlah saya mencoba membangun aplikasi iPhone yang menggunakan OAuth 2.0 untuk beberapa layanan . Saya memiliki ID Aplikasi yang dibuat, tetapi saya perlu menyediakan semacam URI redirect untuk menghasilkan kunci API.

Apakah ini URL yang seharusnya saya host di suatu tempat sendiri ?? Seperti namanya, saya akan berpikir bahwa URL pengalihan seharusnya "mengarahkan" seseorang di suatu tempat. Satu-satunya tebakan saya adalah URL yang diarahkan pengguna setelah mereka masuk ke layanan.

Namun, meskipun asumsi itu benar, saya tidak mengerti satu hal lagi - bagaimana aplikasi saya bisa dibuka lagi setelah saya mengirimnya ke browser untuk login pengguna?

David T.
sumber

Jawaban:

194

Baca ini:

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

atau penjelasan yang lebih sederhana tetapi cepat:

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

URI pengalihan adalah titik masuk panggilan balik aplikasi. Pikirkan tentang cara kerja OAuth untuk Facebook - setelah pengguna akhir menerima izin, "sesuatu" harus dipanggil oleh Facebook untuk kembali ke aplikasi, dan bahwa "sesuatu" adalah URI pengalihan. Selain itu, URI redirect harus berbeda dari titik masuk awal aplikasi.

Poin kunci lainnya dari teka-teki ini adalah Anda bisa meluncurkan aplikasi dari URL yang diberikan ke tampilan web . Untuk melakukan ini, saya cukup mengikuti panduan di sini:

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

dan

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

catatan: pada 2 tautan terakhir itu, "http: //" berfungsi dalam membuka safari seluler tetapi "tel: //" tidak berfungsi di simulator

di aplikasi pertama, saya menelepon

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

Di aplikasi kedua saya, saya mendaftar "secondApp" (dan BUKAN "secondApp: //") sebagai nama Skema URL, dengan perusahaan saya sebagai pengidentifikasi URL.

David T.
sumber
1
Jadi, Anda perlu mengatur situs web Anda sendiri yang diberikan di redirect_uri, apakah itu benar?
huggie
1
@huggie dalam konteks aplikasi iOS - tidak, untungnya, Anda tidak memerlukan situs web Anda sendiri. Anda hanya perlu menyadari bahwa aplikasi iOS Anda dapat dibuka dari URL yang diberikan ke browser web. baca: iosdevelopertips.com/cocoa/…
David T.
1
@Nazerke mungkin menambahkan bahwa ": //" sudah untuk Anda. jadi Anda hanya perlu nama skema
David T.
1
seseorang tolong perbaiki jawaban ini - architecture-soa-bpm-eai.blogspot.com.br/2012/08/... tidak ada lagi
Leo
2
Hai @ DavidT. jawaban yang bagus Mereka hanya peduli, dan harap Anda bisa menyelamatkan saya, apakah cara mengkonfigurasi skema untuk URI yang terpaksa digunakan http://, seperti [YouTube, Instagram, LinkedIn]? Saya mencoba mendaftar misalnya http://localhost/oauth2callbackredirect, dan skema http, localhost, atau oauth2callback tetapi tidak ada yang berfungsi
Tal Zion
9

uri redirected adalah lokasi di mana pengguna akan dialihkan setelah berhasil masuk ke aplikasi Anda. misalnya untuk mendapatkan token akses untuk aplikasi Anda di facebook, Anda perlu mengalihkan uri yang tidak lain adalah hanya Domain aplikasi yang Anda sediakan saat membuat aplikasi facebook Anda.

Dhirender Tyagi
sumber
9

Lihatlah taman bermain OAuth 2.0. Anda akan mendapatkan gambaran umum protokol. Pada dasarnya ini adalah lingkungan (seperti aplikasi apa pun) yang menunjukkan kepada Anda langkah-langkah yang terlibat dalam protokol.

https://developers.google.com/oauthplayground/

Penghisab
sumber
2

Jika Anda menggunakan Facebook SDK, Anda tidak perlu repot-repot memasukkan apa pun untuk mengalihkan URI di halaman manajemen aplikasi Facebook. Cukup siapkan skema URL untuk aplikasi iOS Anda. Skema URL aplikasi Anda harus berupa nilai "fbxxxxxxxxxxx" di mana xxxxxxxxxxx adalah id aplikasi Anda sebagaimana diidentifikasi di facebook. Untuk menyiapkan skema URL untuk aplikasi iOS Anda, buka tab info dari pengaturan aplikasi Anda dan tambahkan Jenis URL.

Kunal Khanna
sumber