Как аутентифицировать пользователей iOS / iPhone с помощью удаленного веб-приложения и повторно использовать билет аутентификации в будущих запросах к тому же веб-приложению?

Я создаю приложение для iOS, и мне нужно иметь возможность делать аутентифицированные запросы к приложению Rails 3 для различных битов данных. Приложение Rails 3 использует omniauth и URL-адреса типа https://myapp.com/auth/facebook , например, для аутентификации пользователей через facebook ... и после аутентификации сохраняет аутентификацию в защищенном файле cookie. с именем "auth." "

Я хочу знать, как аутентифицировать моих пользователей из приложения iOS / iPhone, сохранять токен аутентификации и отправлять его вместе с будущими запросами в приложение Rails?


Использование ASIHTTPRequest I ' Я думаю о том, чтобы сделать что-то вроде этого:

  1. Откройте UIWebview, загрузив его с URL-адресом из моего веб-приложения, специфичного для провайдера, с которым они хотят пройти аутентификацию (например, myapp.com/auth/facebook для facebook или myapp.com/auth/yahoo для Yahoo и т. д.).

  2. В случае успеха каким-то образом проанализируйте и сохраните файл cookie аутентификации в приложении iOS без отображения веб-страницы, которую люди обычно видят при аутентификации через веб-сайт ... и вместо этого закрывая UIWebView и возвращаясь к другому UIVewCo ntroller в приложении iOS.

  3. Каким-то образом включить постоянный токен аутентификации в будущие веб-запросы к приложению Rails.

  4. Я также хочу разрешить пользователям разрешить приложению iOS хранить эту информацию локально, чтобы им не приходилось повторно входить в удаленное приложение, если они тоже захотят.


Уместен ли такой подход? Есть ли способ лучше? И, конечно, как на самом деле реализовать вышеизложенное?

Спасибо - wg

18
задан wgpubs 3 October 2011 в 07:33
поделиться