Начальная точка для приложения Rails3, которое будет бэкэндом для приложения iphone - PullRequest
4 голосов
/ 10 августа 2011

Я хотел бы начать работать над идеей, которая у меня есть для приложения для iphone, но у меня возникли некоторые проблемы с того, с чего начать.Мне бы хотелось, чтобы приложение в основном использовалось на iphone, но в веб-приложении были некоторые функции, такие как вход в систему и просмотр вещей, созданных с помощью приложения iphone.Я запустил приложение rails3 и хотел бы использовать его в качестве бэкенда для API / приложения.

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

Я хочу использовать omniauth для входа в сеть и приложения для iphone, потому что я хочу, чтобы пользователи входили только через twitter и / или fb, но я не знаю, как аутентифицировать запросы после входа пользователей в систему.приложение для iPhone.Я знаю, что некоторые другие драгоценные камни, такие как devise, допускают такие вещи, как столбец с проверкой подлинности с помощью ключа API, который облегчает подписывание вызовов API, но я думаю, что он слишком раздут, чтобы использовать систему авторизации.чтобы создать систему аутентификации, которая будет работать как в качестве веб-приложения, так и при аутентификации через API с помощью iphone.

Спасибо!

Ответы [ 2 ]

6 голосов
/ 10 августа 2011

Несколько мыслей ...

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

Таким образом, рабочий процесс будет:

  • Получите информацию аутентификации из пользовательского ввода и надежно сохраните ее в цепочке для ключей, чтобы беспрепятственно регистрировать их при каждом открытии приложения.
  • Используйте что-то вроде Devise для аутентификации на стороне сервера Rails (т.е.не изобретать велосипед)
  • POST-данные на сервер для создания нового сеанса
  • Получение информации о сеансе обратно с сервера в виде файла cookie
  • Storecookie в приложении iOS
  • Отправляйте информацию о cookie обратно на сервер с каждым запросом
  • Если они выходят из системы, уничтожайте cookie и данные цепочки ключей, которые вы сохраняли, чтобы создавать cookie каждый раз, когда они выходят из системы.открытое приложение

NSURLConnection предоставляет средства для выполнения большей части этого,nd даже отправляет любые сохраненные куки вместе с запросами, если вы не говорите, что нет.Вот старая статья SO, в которой говорится о некоторых из них: Асинхронный веб-запрос Objective-C с файлами cookie

Несколько ресурсов, которые помогут вам в этом:

  1. Получение / хранение / отправка файлов cookie: http://www.calaresu.eu/2011/06/01/using-cookies-with-cocoa-nshttpcookie/
  2. Хорошее слайд-шоу об iPhone с Rails: http://www.slideshare.net/maximeguilbot/rails-as-ios-application-backend
  3. Подходит для хранения информации об аутентификации в связке ключей на iOS: https://github.com/ldandersen/scifihifi-iphone
  4. Разговор с приложением Rails: http://restkit.org/ вот пример рельсов )

Надеюсь, что это поможет некоторым!

0 голосов
/ 10 августа 2011

Когда вы смотрите на приложения для iphone, такие как slicehost или rackspace, вы обычно вводите свое имя пользователя / пароль в настройках iphone ..., чтобы обеспечить аутентификацию на телефоне.Скорее всего, в зависимости от того, что вы делаете, вы попросите свой iphone поговорить с базой данных и вернуть json / xml, который вы проанализируете в своем приложении.

Вы можете http_autenticate ваш звонокв ваш контроллер, который затем получит эту информацию ... для этого просто нужно проверить имя пользователя и пароль вашего пользователя, отправленные обратно в ваше приложение 'rails'.

Но, вы предлагаете только iphone приложение, которое просматривает данные иликак изображения, аля Flickr или twitpic?Может быть, галерея объектов, обычно изображений, которые отправляются обратно?

Лично, не беспокойтесь о «раздутии».Я просто собираюсь предположить, что такие комментарии в сочетании с такими вопросами означают, что вы могли бы беспокоиться о том, что не так, не зная, что происходит.Я прошу прощения, если вы Ричард Столлман или что-то, заранее, но это должно было быть сказано.

...