【问题标题】:Authenticating an Android or iPhone app to a Django backend向 Django 后端验证 Android 或 iPhone 应用程序
【发布时间】:2012-10-31 02:42:07
【问题描述】:

我有一个使用 Django 构建的 webapp。它可以很好地在网络上使用,但现在我正在构建一个 Android 应用程序。我不确定如何安全地对 Django 后端的 Android 应用程序进行身份验证。

此网络应用具有用户配置文件。用户可以使用 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"),
)

我的理解是,在用户成功完成accounts/login 之后,浏览器上会存放一些cookie,用于其余的连接。这是正确的吗?

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

【问题讨论】:

    标签: android iphone ios django django-authentication


    【解决方案1】:

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

    当您连接到启用了Session Middleware 的Django 页面(您需要登录)时,它将设置一个会话cookie(通常称为“sessionid”,尽管you can customise that)。用户(未)登录状态存储在服务器端的会话中,由该会话 ID 链接(除非您使用 cookie-based sessions,但这是另一个帖子的项目)。

    因此,您的 Android 应用只需获取登录页面,取出 sessionid(和 csrftoken)cookie,然后使用用户名、密码、sessionid 和 csrftoken 发布帖子。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多