为iPhone/Android实施注册REST API的最佳方法是什么?

Mic*_*ong 7 api django rest registration

我正在为iPhone和Android编写一个带有REST API的后端应用程序.这是一个内部API.

此时,我正在尝试实现用户注册API,以便用户可以从移动应用程序注册.

我正在使用Django和Django编写,他们为Web请求提供了Cross Site Request Forgery.我必须使用django-piston为REST API禁用它.

那么如何保护我的注册API免受垃圾邮件的侵害呢?油门?验证码?实施注册API的最佳做法是什么?什么是陷阱?

提出的一个建议是在移动应用程序上加载webview并拥有一个移动Web注册表单,以便可以实现CSRF.这是一个解决方案,但不是一个整洁的解决方案,因为我必须为每个移动设备创建设计页面,或者可能不适合所有设备的通用设备页面.

很多帮助表示赞赏.

干杯,米奇

Kev*_*ead 1

我同意使用 OpenID 提供商是实现这一目标的好方法。您应该查看http://pypi.python.org/pypi/django-social-auth或类似项目。另一个好处是您不需要在数据库中保存密码凭据。需要管理的数据更少,丢失的数据也更少。

如果您确实需要一个经典的基于用户名/密码的方案和随附的注册(可能与基于 OpenID 的东西(例如 SO 本身)一起),我会选择活塞提供的限制。就我个人而言,我仅将验证码用作最后的手段,并且通过 REST 接口执行此操作可能非常烦人。您是否在注册阶段继续之前请求验证码?您如何注意到该用户已完成验证码(会话+cookie,...)?如果不使用 webview,则无法使用 reCAPTCHA 或类似服务(在我看来,这将使整个 REST 方法过时)。

我会重新使用 WebView。如果你保持界面干净简单,它就不应该与任何智能手机平台上的任何约定相冲突。

  • 这当然是可能的,但您必须通过 REST 获取验证码图像,将其显示给用户,然后在下一次调用中返回答案。我发现 API 并不理想,因为你需要一个会话。我不喜欢在 API 调用之间保持状态。也许只是我。 (3认同)