django使用api密钥查看简单的访问控制

时间:2012-06-13 10:08:35

标签: django web-services api

我有一个简单的webservice应用程序,需要对允许访问它的应用程序进行某种控制。

我不需要oauth或类似的东西,我想要的只是生成某种需要随请求发送的密钥。我可以手动生成这些键,不需要自动化。但是如果它被滥用,我必须能够关闭特定密钥的访问权限。

我对如何做到有一些想法,但想问你一些最佳实践提示。

1 个答案:

答案 0 :(得分:0)

你可能会受到Tastypie生成API密钥的方法的启发。见相关 代码here

在您的具体情况下,您似乎将拥有许多有效的API密钥 同时。所以你应该替换它:

user = models.OneToOneField(User, related_name='api_key')

使用:

user = models.ForeignKey(User, related_name='api_keys')

你应该添加一个类似于:

的字段
is_valid = models.BooleanField(default=True)

表示与user关联的某个密钥是否有效。