2012-11-08 51 views
147

lập trình viên mới bắt đầu ở đây, xin vui lòng tha thứ cho sự thiếu hiểu biết & giải thích sẽ thật sự tốt đẹp :)URI chuyển hướng là gì? cách áp dụng cho ứng dụng iOS cho OAuth2.0?

Tôi đã cố gắng để đọc 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 điều này chuyển hướng URI ... trong tôi ngữ cảnh cụ thể, 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ó một ID ứng dụng đã được tạo nhưng tôi cần phải cung cấp một số loại URI chuyển hướng để tạo khóa API.

Đây có phải là 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 cho là "chuyển hướng" ai đó ở đâu đó. Đoán duy nhất của tôi là đó 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 cho trình duyệt để đăng nhập người dùng?

Trả lời

168

đọ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

Các chuyển hướng URI là điểm mấu chốt callback 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, "cái gì đó" phải được gọi bởi Facebook để 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 nhập ban đầu của ứng dụng.

Điểm quan trọng khác cho câu đố này là bạn có thể khởi chạy ứng dụng của mình từ URL được cung cấp cho chế độ xem web. Để làm điều này, tôi chỉ đơn giản theo hướng dẫn trê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 những 2 liên kết cuối cùng, "http: //" hoạt động trong việc mở điện thoại di động safari nhưng "tel: //" không hoạt động trong trình mô phỏng

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

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

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

+25

Tôi thực sự đánh giá cao việc bạn dành thời gian để nhận câu trả lời này cùng nhau! –

+1

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

+1

@huggie trong bối cảnh ứng dụng iOS - không, may thay, bạn không cần trang web của riêng bạn. 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: http://iosdevelopertips.com/cocoa/launching-your-own-application-via-a-custom-url-scheme.html –

6

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ụ để lấy mã thông báo truy cập cho ứng dụng của bạn trong facebook, bạn cần phải chuyển url uri được chuyển hướng mà không có gì chỉ là miền ứng dụng mà bạn cung cấp khi tạo ứng dụng facebook của mình.

1

Nếu bạn đang sử dụng SDK Facebook, bạn không cần phải bận tâm khi nhập mọi thứ cho URI chuyển hướng trên trang quản lý ứng dụng của facebook. Chỉ cần thiết lập một sơ đồ URL cho ứng dụng iOS của bạn. Lược đồ URL của ứng dụng phải là 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 và thêm Loại URL.

6

Hãy xem tại sân chơi OAuth 2.0.Bạn sẽ nhận được tổng quan về giao thức.Nó về cơ bản là một môi trường (giống như bất kỳ ứng dụng nào) cho bạn thấy các bước liên quan đến giao thức.

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

Các vấn đề liên quan