我有一个简单的 web 服务应用程序,它需要对允许访问它的应用程序进行某种控制。
我不需要 oauth 或类似的东西,我想要的只是生成某种需要随请求一起发送的密钥。我可以手动生成这些密钥,不需要自动化。但是如果它被滥用,我必须能够关闭对特定密钥的访问。
我对如何做到这一点有一些想法,但想向您请教一些最佳实践技巧。
我有一个简单的 web 服务应用程序,它需要对允许访问它的应用程序进行某种控制。
我不需要 oauth 或类似的东西,我想要的只是生成某种需要随请求一起发送的密钥。我可以手动生成这些密钥,不需要自动化。但是如果它被滥用,我必须能够关闭对特定密钥的访问。
我对如何做到这一点有一些想法,但想向您请教一些最佳实践技巧。
您可能会受到 Tastypie 生成 API 密钥的方法的启发。请参阅此处的相关代码。
在您的特定情况下,您似乎将拥有许多同时有效的 API 密钥。所以你应该替换这个:
user = models.OneToOneField(User, related_name='api_key')
和:
user = models.ForeignKey(User, related_name='api_keys')
您应该添加一个类似于以下内容的字段:
is_valid = models.BooleanField(default=True)
这将表示与 a 关联的某个键user
是否有效。