Войти в iPhone через iPhone и сохранить аутентифицированного пользователя в удаленном приложении Django - PullRequest
1 голос
/ 10 октября 2011

У меня есть смутное представление о том, как это сделать.

Мое приложение использует API, написанный на Django, но мой клиент потребовал, чтобы я выполнял аутентификацию только через Twitter. Проблема в том, что после того, как я войду в приложение для iPhone через Twitter, как я смогу работать с моделью пользователя Django?

Кстати, я использую django-tastypie с Django и ASIHTTPRequest с iOS.

Спасибо!

1 Ответ

1 голос
/ 10 октября 2011

Ygam,

Я использую Facebook Connect / Graph в своем приложении (и на нашем сайте) и использую API-интерфейс вокруг моего сайта Django с помощью Piston. На самом деле я собираюсь пойти в TastyPie, но сейчас нет времени на рефакторинг.

Я столкнулся с подобной проблемой, когда мы представили FB, поэтому я решил использовать токен API для всех вызовов API и выдавать этот токен при успешном входе в систему, независимо от того, какой механизм аутентификации будет использоваться (django user / pw, FB , Twitter и т. Д.)

В настоящее время пользователи могут войти в приложение с именем пользователя / pw или FB. Вход в систему состоит из «GET» через HTTPS, который возвращает профиль json (я мог бы сначала вернуть токен API и заставить приложение сделать еще один вызов для профиля json, но при работе с мобильными устройствами и медленными сетями вы хотите уменьшить сетевые вызовы ).

Токен хранится локально и будет работать до тех пор, пока сервер не решит отозвать его (истекает, вручную пользователем на веб-сайте и т. Д.)

Так что теперь мой «GET / профиль» просто поддерживает различные параметры URL, основанные на механизме аутентификации, используемом как имя пользователя / пароль для Django, fbtoken для Facebook, twtoken и т. Д., А на стороне сервера я использую Django для проверки внешних токенов с помощью сторонней организации апи. Это также используется для получения данных профиля FB, таких как адрес электронной почты, и сохранения их в модели Django.

Я не смотрел на интеграцию Twitter в iOS5, но если вы можете получить токен авторизации, вы можете делать что-то подобное.

...