我一直在努力解决这个问题,倾注了很多其他的SO答案,但似乎无法弄清楚如何使用ApiKeyAuthentication对用户进行Django站点身份验证。
在此answer中,接受的答案指出“将用户名和api_key参数添加到GET变量”。我的问题是,如果TastyPie为我生成密钥,我怎么知道api密钥是什么?如果我想创建自己的键,我会在哪里放置该键?
这是我的api.py:
class SystemResource(ModelResource):
user = fields.ForeignKey(UserResource, 'user')
class Meta:
querySet = System.objects.all()
resource_name = 'system'
authentication = ApiKeyAuthentication()
当我调用网址时:http://192.168.1.130:8080/systems/api/v1/user/?username=garfonzo&api_key=123456789
它失败了,将我踢到了我的登录页面。当然,123456789
已经完全弥补了,我没有在任何地方列出那个键,所以在某些方面很明显这是失败的)。
在文档中,它讨论either创建Authorization标头,或在请求中提供用户名/ api_ky。但是,如果我在请求中提供api_key,我怎么知道那个键应该是什么?它在服务器上的定义在哪里?
任何帮助?
答案 0 :(得分:1)
要为您的Tastypie创建API密钥,您应该访问管理员网站,并在TastyPie应用程序中添加新的API密钥。选择用户,将密钥留空,它将为您自动生成一个;)