将我的 django rest 框架 API 限制为仅对我的移动和 Web 应用程序可用的推荐方法是什么?我正在使用 django-rest-auth 对我的用户进行身份验证。有一些 API 可以匿名访问。但我需要确保所有 API 都只能通过我的应用程序(移动和网络)使用。
任何帮助/教程都非常感谢。谢谢
将我的 django rest 框架 API 限制为仅对我的移动和 Web 应用程序可用的推荐方法是什么?我正在使用 django-rest-auth 对我的用户进行身份验证。有一些 API 可以匿名访问。但我需要确保所有 API 都只能通过我的应用程序(移动和网络)使用。
任何帮助/教程都非常感谢。谢谢
您需要在配置级别设置授权方案,以将其仅限于您的移动/网络应用程序,并在类级别明确设置公共的。有关实施细节,请参阅http://www.django-rest-framework.org/api-guide/permissions/#setting-the-permission-policy 。
因为可以嗅探所有请求,所以您不能使用任何密钥或检查 HTTP 来源(它很容易被伪造)。
对于移动设备,您可以尝试使用带有一些特殊算法的密钥生成器。从示例 MD5(current_time + your_secret_phrase)。然后,您将能够验证代码是否可以接受。这将使嗅探器几乎不可能使用您的 API。
但是对于 Web,您无能为力。所有标题都可以伪造。唯一的方法——用户认证。
当然,您可以使用密钥并每月/每天/每小时更改一次。但是这值得吗?