使用ApiKeyAuthentication授权TastyPie和Django

时间:2014-08-28 15:27:20

标签: django tastypie

我一直在努力解决这个问题,倾注了很多其他的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,我怎么知道那个键应该是什么?它在服务器上的定义在哪里?

任何帮助?

1 个答案:

答案 0 :(得分:1)

要为您的Tastypie创建API密钥,您应该访问管理员网站,并在TastyPie应用程序中添加新的API密钥。选择用户,将密钥留空,它将为您自动生成一个;)