我想为移动设备创建一个带有身份验证的 REST 服务。这是我第一次做这样的事情,所以我想收到一些关于如何实施的建议。
为此,我需要创建一个注册表单,让用户注册服务。我在这里看不到任何问题,我可以将表单数据发布到服务器并让它返回响应。
如果表单有效,将创建一个新的用户对象并立即登录。还将使用以下方法生成一个 API KEY:
from django.contrib.auth.models import User
from django.db import models
from tastypie.models import create_api_key
models.signals.post_save.connect(create_api_key, sender=User)
该请求将返回 301 HTTP 状态并包含一个重定向 URI 以获取 API KEY。
在这一步之后,应用程序将请求另一个 URI(在注册请求的 301 响应中收到的 URI)来访问 API KEY(我将使用 Tastypie 的ApiKeyAuthentication方案)。该请求将包含在先前请求响应中收到的会话 cookie,这种查看方式将是安全的,我将能够使用 login_required 装饰器。响应将是带有用户名和 api 密钥的纯 JSON。
这些值将存储在应用程序的某个位置。
现在发出的任何请求都将添加存储在应用程序中的用户名和 API KEY,因此进一步的请求将更加安全。
这看起来像是一个很好的计划吗?设计中有漏洞吗?