URI chuyển hướng là gì? Làm thế nào để áp dụng nó cho ứng dụng iOS cho OAuth2.0?


184

Lập trình viên mới bắt đầu ở đây, xin vui lòng tha thứ và giải thích sẽ thực sự tốt đẹp :)

Tôi đã cố đọc hướng dẫn cho một dịch vụ OAuth 2.0 nào đó, nhưng tôi không hiểu URI chuyển hướng này ... trong ngữ cảnh cụ thể của tôi, giả sử tôi đang cố gắng xây dựng một ứng dụng iPhone sử dụng OAuth 2.0 cho một số dịch vụ . Tôi có ID ứng dụng đã được tạo, nhưng tôi cần cung cấp một số loại URI chuyển hướng để tạo khóa API.

Đây có phải là một URL mà tôi phải lưu trữ ở đâu đó không ?? Như tên cho thấy, tôi sẽ nghĩ rằng URL chuyển hướng có nghĩa vụ "chuyển hướng" một ai đó ở đâu đó. Tôi chỉ đoán rằng đó là URL mà người dùng được chuyển hướng đến sau khi họ đăng nhập vào dịch vụ.

Tuy nhiên, ngay cả khi giả định đó là chính xác, tôi không hiểu một điều khác - làm thế nào để ứng dụng của tôi có thể được mở lại sau khi tôi gửi chúng đến trình duyệt để đăng nhập người dùng?

Câu trả lời:


194

Đọc này:

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

hoặc một lời giải thích thậm chí đơn giản hơn nhưng nhanh chóng:

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

URI chuyển hướng là điểm nhập cảnh gọi lại của ứng dụng. Hãy suy nghĩ về cách OAuth cho Facebook hoạt động - sau khi người dùng cuối chấp nhận quyền, "một cái gì đó" phải được Facebook gọi để quay lại ứng dụng và "cái gì đó" là URI chuyển hướng. Hơn nữa, URI chuyển hướng phải khác với điểm vào ban đầu của ứng dụng.

Điểm mấu chốt khác của câu đố này là bạn có thể khởi chạy ứng dụng của mình từ một URL được cung cấp cho một lần xem web . Để làm điều này, tôi chỉ cần làm theo hướng dẫn ở đây:

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/

lưu ý: trên 2 liên kết cuối cùng đó, "http: //" hoạt động trong việc mở safari di động nhưng "tel: //" không hoạt động trong trình giả lập

trong ứng dụng đầu tiên, tôi gọi

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

Trong ứng dụng thứ hai của mình, tôi đăng ký "secondApp" (và KHÔNG "secondApp: //") làm tên của Lược đồ URL, với công ty của tôi là định danh URL.


1
Vì vậy, bạn cần phải thiết lập trang web của riêng mình được cung cấp trong redirect_uri, điều đó có đúng không?
huggie

1
@huggie trong bối cảnh ứng dụng iOS - không, may mắn thay, bạn không cần trang web của riêng mình. bạn chỉ cần nhận ra rằng ứng dụng iOS của bạn có thể được mở từ một URL được cung cấp cho trình duyệt web. đọc: iosdevelopertips.com/cocoa/iêu
David T.

1
@Nazerke có lẽ nó đã thêm ": //" cho bạn rồi. vì vậy bạn chỉ cần lập sơ đồ tên
David T.

1
ai đó làm ơn sửa câu trả lời này - architecture-soa-bpm-eai.blogspot.com.br/2012/08/ không còn tồn tại nữa
Leo

2
Xin chào @DavidT. câu trả lời chính xác. Họ chỉ quan tâm và hy vọng bạn có thể cứu tôi, là làm cách nào để định cấu hình các lược đồ cho URI bị buộc phải sử dụng http://, chẳng hạn như [YouTube, Instagram, LinkedIn]? Tôi đã cố gắng đăng ký http://localhost/oauth2callbackchuyển hướng ví dụ và lược đồ http, localhost hoặc oauth2callback nhưng không phải chúng hoạt động
Tal Zion

9

uri được chuyển hướng là vị trí mà người dùng sẽ được chuyển hướng sau khi đăng nhập thành công vào ứng dụng của bạn. ví dụ: để có được mã thông báo truy cập cho ứng dụng của bạn trong facebook, bạn cần phải thay thế uri được chuyển hướng, không chỉ là tên miền ứng dụng mà bạn cung cấp khi bạn tạo ứng dụng facebook.



2

Nếu bạn đang sử dụng SDK Facebook, bạn không cần phải bận tâm nhập bất cứ điều gì để chuyển hướng URI trên trang quản lý ứng dụng của facebook. Chỉ cần thiết lập sơ đồ URL cho ứng dụng iOS của bạn. Lược đồ URL của ứng dụng của bạn phải là một giá trị "fbxxxxxxxxxxx" trong đó xxxxxxxxxxx là id ứng dụng của bạn như được xác định trên facebook. Để thiết lập lược đồ URL cho ứng dụng iOS của bạn, hãy chuyển đến tab thông tin của cài đặt ứng dụng của bạn và thêm Loại URL.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.