2012-10-31 2 views
5

장고로 제작 된 웹 응용 프로그램이 있습니다. 그것은 웹에서 사용하기 위해 잘 작동하지만, 이제 Android 앱을 제작하고 있습니다. 난 장고 백엔드 안드로이드 애플 리케이션을 안전하게 인증하는 방법에 대해 확실하지 않다.Django 백엔드에 Android 또는 iPhone 앱 인증

이 webapp에는 사용자 프로필이 있습니다. 사용자는 웹 인터페이스를 사용하여 로그인/로그 아웃을 등록 할 수 있습니다. 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을 완료 한 후 연결의 나머지 부분에 사용되는 브라우저에 증착 일부 쿠키가 있다는 것입니다. 이 올바른지?

안드로이드 장치에서 사용자 이름과 암호가 주어지면 Django 백엔드 사용자를 인증하는 가장 좋은 방법은 무엇입니까? 브라우저에서 쿠키를 가져와야합니까, 아니면 더 좋은 방법이 있습니까?

답변

6

인증을 할 수있는 몇 가지 방법이 있지만 기존의 장고 세션 지원과 사용하는 쿠키를 사용하는 것이 가장 좋은 방법 일 것입니다.

당신이 세션 쿠키를 설정합니다 (당신이 로그인에 필요한) 활성화 Session Middleware와 장고 페이지로 연결

은 (일반적으로 you can customise that 있지만, '세션 id'라고도 함). 로그인 한 사용자 (아닌)는이 세션 ID로 연결된 세션에 서버 측에 저장됩니다 (사용자가 cookie-based sessions을 사용하고 있지 않는 한 다른 게시물의 항목 임).

귀하의 안드로이드 애플 리케이션은 로그인 페이지를 얻을 수 있습니다, 그리고 sessionid (그리고 csrftoken) 쿠키를 밖으로 물고기 그리고 사용자 이름, 비밀 번호, sessionid 및 csrftoken와 게시물을 확인하십시오.

쉬운 방법입니다. 더 복잡한 옵션이 있습니다. 대부분 사용자 정의보기를 사용하여 JSON을 다시 불러오고 일반적으로 모바일 앱용 API를 제공하기 시작합니다. 브라우저는 브라우저 인 것처럼 보이지 만 장고 측면에서는 다소 복잡합니다.

관련 문제