我有一个Django应用程序,允许用户上传文件并对其进行一些处理,我需要为此应用程序编写API。要求是:
我只是简单地告诉Django在一个特定的URL(我通过将文件传递给curl
来点击)上搜索POST数据,我很容易写了第一部分,但这显然不会给我用户AUTH。
如何添加?我应该尝试类似于tastypie的东西,因为它是用于构建API并且支持用户身份验证,即使我只使用这个基本API几乎不会破坏其功能的表面吗?或者我可以告诉Django在POST中接受用户名和密码以及文件吗?是否有通过基于Django构建的API验证用户的最佳实践?
答案 0 :(得分:2)
我对此的看法是简单地使用django.contrib.auth
应用程序,在处理POST请求中的实际文件数据之前,只需验证POST请求是否也包含有效的身份验证信息。您可以通过调用authenticate
函数来执行此操作,请参阅https://docs.djangoproject.com/en/dev/topics/auth/#django.contrib.auth.authenticate
以上情况适用于您希望整个流程在单个请求中发生的情况。但是,这意味着在检查身份验证信息之前,将上传整个文件。如果您能够将其拆分为一个auth请求,然后进行文件上传,则可以创建一个视图来处理身份验证,然后通过login_required
装饰器保护您的文件上载视图。这将需要会议......
答案 1 :(得分:0)
答案 2 :(得分:0)
验证
请参阅我的代码进行文件上传& API身份验证位于git。