【问题标题】:TastyPie and Django authorization with ApiKeyAuthenticationTastyPie 和 Django 授权与 ApiKeyAuthentication
【发布时间】:2014-08-28 15:27:20
【问题描述】:

我一直在为此苦苦挣扎,倾注了一堆其他 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()

当我调用 URL 时:http://192.168.1.130:8080/systems/api/v1/user/?username=garfonzo&api_key=123456789 它失败了,将我踢到了我的登录页面。当然,123456789 是完全虚构的,我没有在任何地方列出那个键,所以在某些方面很明显这是失败的)。

在文档中,它讨论了either 创建授权标头,或在请求中提供用户名/api_ky。但同样,如果我在请求中提供 api_key,我怎么知道 那个 键应该是什么?它在服务器上的哪里定义?

有什么帮助吗?

【问题讨论】:

    标签: django tastypie


    【解决方案1】:

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

    【讨论】:

    • 啊,很好,这就是我创建 api_key 的地方。那么下一个问题,如果我有一个中间件在你没有登录的情况下将你踢到登录页面,TastyPie 可以处理吗?不知何故告诉 Django 这个用户可以访问数据。这不是ApiKeyAuthentication的重点吗?
    • 嗯,这是一个完全不同的问题。您应该打开另一个问题,我会尝试在那里回答。这样,人们将能够找到这两个问题,而无需查看完全不相关的 cmets ;) 而且,如果此答案有帮助,请将其标记为已接受!干杯
    • 谢谢,您的解决方案确实有帮助。我在stackoverflow.com/questions/25573037/… 开了另一个帖子
    猜你喜欢
    • 2014-11-13
    • 1970-01-01
    • 2014-03-17
    • 2014-01-13
    • 2013-07-18
    • 1970-01-01
    • 1970-01-01
    • 2014-07-03
    • 1970-01-01
    相关资源
    最近更新 更多