我有一个面向公众的REST API,它使用django-rest-framework和Django 1.8。 API目前不需要身份验证。作为同一个Web应用程序的一部分,在同一个域中,我有一个使用API的JavaScript前端。
我的客户现在希望我为此API添加某种身份验证。 (基本目标是我们可以跟踪谁在使用它 - 它实际上是社交工程,鼓励使用我们数据的任何人引用我们的服务。)
但是,目标API用户并不是高技术人员 - 他们可能是将使用API进行数据分析的学者,而不是Web开发人员。因此,身份验证越轻便越好。我不确定我们的目标用户是否会处理发送身份验证请求,在标头中添加令牌等等。
添加到DRF的最佳身份验证类型是:(a)对于我们的目标用户群是否适当轻量级,以及(b)是否需要以不这样的方式验证我的JavaScript前端应用程序把钥匙暴露给每个人?
我的第一个想法是,我想为用户提供一个可以添加为GET参数的密钥(like this) - 对他们来说很简单。但是,如果我向API添加密钥auth,那么我必须在我的JS应用程序的XHR请求中公开密钥GET参数,这是不理想的。
我们的目标受众可能不会真正注意到XHR请求中暴露的密钥,而不是Web开发人员。但我想我会问是否有人能想出更好的解决方案 - 非常感谢任何建议。
答案 0 :(得分:0)
Token Authentication使用起来非常简单,但如果您的网站不使用https,则令牌很容易被盗用并被攻击者用来执行api调用。
如果此处的身份验证仅适用于社交工程,如果令牌泄露给第三方并不重要,那么我认为它的出路