2013-08-20 3 views
4

На данный момент у меня есть API-интерфейс Django REST, и все это hunky dory для веб-приложения, в котором я реализовал User Auth в бэкэнд. Условие «login_required» хорошо подходит для веб-приложения, которое основано на файлах cookie.Как аутентифицировать запрос POST пользователя Android с API Django REST?

У меня есть приложение для Android, которому необходимо получить доступ к тому же API. Я могу войти в аккаунт. Мне нужно знать, как аутентифицировать каждого пользователя, когда они делают запрос GET/POST для моих просмотров?

Моего исследование показывает несколько решений: 1) Cookie спинок сеансы 2) Отправить имя пользователя и пароль с каждым запросом GET/POST (не может быть безопасными)

Любых идей?

ответ

8

Это звучит, как вы используете Django REST Framework в этом случае TokenAuthentication может быть подходящим. Из документов:

Эта схема аутентификации использует простой токенов на основе HTTP схемы аутентификации. Токен аутентификация подходит для клиент-серверных установок, таких как родные настольные и мобильные клиенты

Вам не нужно предварительно генерировать маркера, как клиенты могут попросить один с помощью встроенного в целях obtain_auth_token, которые вам настройте свой urls.py.

После того, как клиент получил токен для сеанса, он может предоставить его при последующих вызовах API с использованием HTTP-заголовка Authorization:.

Заканчивать документацию для получения дополнительной информации: http://www.django-rest-framework.org/api-guide/authentication/#tokenauthentication

3

HTTP Basic аутентификации (BA) реализация является простейшим техника для обеспечения соблюдения контроля доступа к веб-ресурсам, поскольку он не требует куки, идентификатор сеанса и авторизации. Скорее всего, HTTP Базовая аутентификация использует статические, стандартные заголовки HTTP, которые означает, что никакие рукопожатия не должны быть сделаны в ожидании

Чтобы прочитать больше и получить представление о том, что вам нужно сделать на стороне сервера и клиента для реализации, прочитать:

http://en.wikipedia.org/wiki/Basic_access_authentication

Я использовал различные рамки REST Java и все из них предоставляет простую API-интерфейсы для добавления Основных добавлений и поиска заголовка аутентификации.

Для Джанго, вот некоторые полезные фрагменты кода:

http://djangosnippets.org/snippets/243/

0

Вы можете использовать промежуточное Джанго Sessions, который установит печенье с Джанго session_id. По следующим запросам промежуточное программное обеспечение для сеансов установит атрибут объекта запроса, называемого пользователем, и затем вы сможете проверить, аутентифицирован ли пользователь request.user.is_authenticated() (или login_required decorator). Кроме того, вы можете установить тайм-аут сеанса как угодно в настройках.

Это промежуточное программное обеспечение включено в настройках по умолчанию django.

 Смежные вопросы

  • Нет связанных вопросов^_^