Можно ли выполнить аутентификацию с помощью oauth на iphone, не заставляя пользователя вводить пин-код? - PullRequest
1 голос
/ 29 января 2010

нет никакого практического способа, который я мог бы увидеть или прочитать, который позволил бы вам проходить аутентификацию, используя oauth, не заставляя пользователя покидать приложение или записывать пин-код, прежде чем он сможет опубликовать обновление ..... другой API отдыха, который я пропустил?


Вот мой код .... я что-то не так делаю?

NSURL *requestTokenURL = [NSURL URLWithString:@"<a href="http://twitter.com/oauth/request_token" rel="nofollow noreferrer">http://twitter.com/oauth/request_token</a>"]; </p> <pre><code>OAMutableURLRequest *request = [[OAMutableURLRequest alloc] initWithURL:requestTokenURL consumer:_consumer token:nil realm:nil signatureProvider:nil]; [request setHTTPMethod:@"POST"]; [request setOAuthParameterName:@"oauth_callback" withValue:@"myApp:"]; [request prepare]; OADataFetcher *fetcher = [[OADataFetcher alloc] init]; [fetcher fetchDataWithRequest:request delegate:self didFinishSelector:@selector(requestTokenTicket:didFinishWithData:) didFailSelector:@selector(requestDidFail)];

}

Ответы [ 2 ]

9 голосов
/ 30 января 2010

Да. Что вы можете сделать, это зарегистрировать пользовательскую схему URI в своем приложении и использовать ее в параметре oauth_callback. Это избавляет вас от необходимости использовать внешнюю конфигурацию обратного вызова, которая требует, чтобы пользователь вручную вводил верификатор, как вы описываете.

Подробная информация о регистрации пользовательской схемы URI для вашего приложения здесь:

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

Отредактировано - Разработка

Используя пользовательскую схему URI, вы можете указать поставщику услуг OAuth «перезвонить» вашему приложению iPhone, когда пользователь авторизует маркер запроса. Это альтернатива громоздкому рабочему процессу «внеполосного обратного вызова», который требует от пользователя авторизации токена запроса, а затем получения кода верификатора, который они вводят вручную через ваше приложение. Это также более похоже на поведение веб-приложений, использующих OAuth.

Шаги, связанные с использованием схемы URI, будут следующими:

  1. Используя приведенную выше ссылку в качестве руководства, привяжите пользовательскую схему URI к своему приложению для iPhone (например, «myapp: //»).
  2. При запросе токена запроса у поставщика услуг OAuth укажите URI, который использует вашу пользовательскую схему в качестве значения параметра «oauth_callback». Например, oauth_callback = myapp: // oauth / callback
  3. Когда вы получите токен запроса, направьте пользователя на URL-адрес конечной точки авторизации поставщиков услуг через браузер (запустите Safari, отправьте пользователя на http://example.com/oauth/authorize?oauth_token=token).
  4. Если пользователь решит авторизовать маркер запроса, поставщик услуг перенаправит их (обычно через заголовок HTTP-статуса 301) на URI, указанный на шаге № 2.
  5. Safari распознает, что URI использует схему, связанную с вашим приложением, и запустит ваше приложение.
  6. Когда вызывается обратный вызов (опять же, см. Подробности в приведенном выше руководстве), вы сможете обменять авторизованный токен запроса OAuth на токен доступа.
  7. Наконец, с помощью токена доступа вы сможете получить доступ к Защищенным ресурсам от поставщика услуг OAuth.

Это имеет больше смысла?

2 голосов
/ 01 февраля 2010

Вот почему это не будет работать ...

23 апреля 2009 г. Устаревший (REST): поддержка параметра oauth_callback была удалена из-за уязвимости безопасности. (Обсуждение)

Вы должны вручную установить URL обратного вызова в настройках вашего приложения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...