我有一个简单的webservice应用程序,需要对允许访问它的应用程序进行某种控制。
我不需要oauth或类似的东西,我想要的只是生成某种需要随请求发送的密钥。我可以手动生成这些键,不需要自动化。但是如果它被滥用,我必须能够关闭特定密钥的访问权限。
我对如何做到有一些想法,但想问你一些最佳实践提示。
答案 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
关联的某个密钥是否有效。