向Django后端验证Android或iPhone应用程序

Ale*_*xis 5 iphone django android django-authentication ios

我有一个用Django构建的webapp.它适用于网络,但现在我正在构建一个Android应用程序.我不确定如何安全地验证Django后端的Android应用程序.

此webapp具有用户配置文件.用户可以使用Web界面注册/登录/注销.相关部分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"),
)
Run Code Online (Sandbox Code Playgroud)

我的理解是,在用户成功完成后accounts/login,在浏览器上存放了一些用于其余连接的cookie.它是否正确?

在Android设备上,给定用户名和密码,用户向Django后端验证用户的正确或最佳方式是什么?我是否需要像在浏览器中那样获取cookie或者有更好的方法吗?

Tom*_*ilt 6

有几种方法可以进行身份​​验证,但使用现有的Django会话支持及其使用的cookie可能是最好的方法.

当你连接到启用了会话中间件的Django页面(你需要登录)时,它会设置一个会话cookie(通常称为'sessionid',尽管你可以自定义).用户(非)登录状态在服务器端存储在由此会话ID链接的会话中(除非您使用基于cookie的会话,但这是另一个帖子的项目).

因此,您的Android应用程序可以获取登录页面,删除sessionid(和csrftoken)cookie,然后使用用户名,密码,sessionid和csrftoken发布帖子.

这是简单的方法.还有更复杂的选项,主要涉及制作一个自定义视图,可以回放JSON,并且通常开始为您的移动应用程序提供API,而不是让它们假装它们是浏览器,但这在Django方面有点复杂.