Удостоверяване на приложение за Android или iPhone към бекенд на Django

Имам уеб приложение, което е създадено с Django. Работи добре за използване в мрежата, но сега създавам приложение за Android. Не съм сигурен как да удостоверя сигурно приложението за Android в задната част на Django.

Това уеб приложение има потребителски профили. Потребителят може да се регистрира/влезе/излезе с помощта на уеб интерфейса. Съответната част от urls.py изглежда така:

urlpatterns += patterns('',
  url(r'^accounts/login/$', 'django.contrib.auth.views.login', name='login'),
  url(r'^accounts/logout/$', 'django.contrib.auth.views.logout', name="logout"),
)

Разбирам, че след като потребителят завърши успешно accounts/login, в браузъра има депозирана бисквитка, която се използва за останалите връзки. Дали това е правилно?

Когато сте на устройство с Android и имате потребителско име и парола, какъв е правилният или най-добрият начин за удостоверяване на потребителя в бекенда на Django? Трябва ли да получа бисквитката като в браузъра или има по-добър начин?


person Alexis    schedule 31.10.2012    source източник


Отговори (1)


Има няколко начина, по които можете да извършите удостоверяване, но използването на съществуващата поддръжка на Django сесия и бисквитките, които използва, вероятно е най-добрият начин.

Когато се свържете към страница на Django с активиран мидълуер за сесии (който трябва за влизане) ще зададе бисквитка за сесия (обикновено наричана „sessionid“, въпреки че можете да персонализирате това). Състоянието (не)влезли потребители се съхранява от страната на сървъра в сесия, свързана от този идентификатор на сесия (освен ако не използвате сесии, базирани на бисквитки, но това е елемент за друга публикация).

Така че приложението ви за Android може просто да получи страницата за вход, да извади sessionid (и csrftoken) бисквитки и след това направете публикация с потребителско име, парола, sessionid и csrftoken.

Това е лесният начин. Има по-сложни опции, които най-вече включват създаване на персонализиран изглед, който връща JSON и като цяло започва да предоставя API за вашите мобилни приложения, вместо да ги кара да се преструват, че са браузъри, но това е малко по-сложно от страна на Django.

person Tom Parker-Shemilt    schedule 31.10.2012