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或者有更好的方法吗?
有几种方法可以进行身份验证,但使用现有的Django会话支持及其使用的cookie可能是最好的方法.
当你连接到启用了会话中间件的Django页面(你需要登录)时,它会设置一个会话cookie(通常称为'sessionid',尽管你可以自定义).用户(非)登录状态在服务器端存储在由此会话ID链接的会话中(除非您使用基于cookie的会话,但这是另一个帖子的项目).
因此,您的Android应用程序可以获取登录页面,删除sessionid(和csrftoken)cookie,然后使用用户名,密码,sessionid和csrftoken发布帖子.
这是简单的方法.还有更复杂的选项,主要涉及制作一个自定义视图,可以回放JSON,并且通常开始为您的移动应用程序提供API,而不是让它们假装它们是浏览器,但这在Django方面有点复杂.