Что такое URI перенаправления? как это относится к приложению iOS для OAuth2.0?


184

Начинающий программист, прошу прощения за невежество и объяснения будут очень хорошими :)

Я пытался прочитать руководства для определенной службы OAuth 2.0, но я не понимаю этот URI перенаправления ... в моем конкретном контексте, скажем, я пытаюсь создать приложение для iPhone, которое использует OAuth 2.0 для какой-либо службы , У меня есть идентификатор приложения, который был сгенерирован, но мне нужно предоставить своего рода URI перенаправления для генерации ключа API.

Это URL, который я должен разместить где-то сам ?? Как следует из названия, я думаю, что URL перенаправления должен «перенаправлять» кого-то куда-то. Я могу только предположить, что это URL-адрес, на который перенаправляется пользователь после входа в службу.

Однако, даже если это предположение верно, я не понимаю еще одной вещи - как можно снова открыть мое приложение после того, как я отправил их в браузер для входа пользователя?

Ответы:


194

Прочитайте это:

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

или еще более простое, но быстрое объяснение:

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

URI перенаправления является точкой входа обратного вызова приложения. Подумайте о том, как работает OAuth для Facebook - после того, как конечный пользователь принимает разрешения, Facebook должен вызвать «что-то», чтобы вернуться в приложение, и это «что-то» является URI перенаправления. Кроме того, URI перенаправления должен отличаться от начальной точки входа в приложение.

Другим ключевым моментом этой головоломки является то, что вы можете запустить свое приложение по URL-адресу, указанному для веб-просмотра . Чтобы сделать это, я просто следовал руководству здесь:

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/

примечание: на последних двух ссылках «http: //» работает при открытии мобильного сафари, но «tel: //» не работает в симуляторе

в первом приложении звоню

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

Во втором приложении я регистрирую «secondApp» (а не «secondApp: //») в качестве имени схемы URL, с моей компанией в качестве идентификатора URL.


1
Итак, вам нужно настроить свой собственный веб-сайт, указанный в redirect_uri, это правильно?
Хагги

1
@huggie в контексте приложений для iOS - нет, к счастью, вам не нужен собственный сайт. вам просто нужно понять, что ваше приложение iOS можно открыть по URL-адресу, предоставленному веб-браузеру. Читайте: iosdevelopertips.com/cocoa/…
Дэвид Т.

1
@Nazerke, вероятно, добавляет, что ": //" для вас уже. так что вам нужно только имя схемы
Дэвид Т.

1
кто-то, пожалуйста, исправьте этот ответ - architect-soa-bpm-eai.blogspot.com.br/2012/08/… больше не существует
Лев

2
Привет @DavidT. отличный ответ. Они касаются только и надеются, что вы можете спасти меня, как настроить схемы для URI, которые вынуждены использовать http://, например [YouTube, Instagram, LinkedIn]? Я попытался зарегистрировать, например, http://localhost/oauth2callbackредирект и схему http, localhost или oauth2callback, но ни одна из них не работает
Tal Zion

9

URI перенаправления - это место, куда пользователь будет перенаправлен после успешного входа в ваше приложение. Например, чтобы получить токен доступа для вашего приложения в Facebook, вам нужно добавить перенаправленный URI, который является ничем иным, как Доменом приложения, который вы предоставляете при создании приложения Facebook.



2

Если вы используете Facebook SDK, вам не нужно беспокоиться о том, чтобы вводить что-либо для перенаправления URI на странице управления приложениями в Facebook. Просто настройте схему URL для своего приложения iOS. Схема URL вашего приложения должна иметь значение «fbxxxxxxxxxxx», где xxxxxxxxxxx - это идентификатор вашего приложения, указанный на Facebook. Чтобы настроить схему URL для своего приложения iOS, перейдите на вкладку «Информация» настроек своего приложения и добавьте тип URL.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.