我正在使用 Django Rest Framework 构建 API。
我看了一大堆文档,但我似乎无法回答这个问题:
如何限制我的 API,以便只有我的 iOS 客户端可以注册用户/让他们登录?
我了解我可以对其他端点使用 OAuth2 或 token 身份验证。但是对于未经身份验证的请求,有什么方法可以限制它们吗?
最佳答案
没有真正安全的方法来保证请求来自特定设备。正如@dukebody 所提到的,检查 header 似乎是最好的方法,但对于大多数用户来说,这应该被视为“足够好”的解决方案。
我还会质疑您为什么要这样做。 API 通常不应局限于某些设备,因为这会降低它们的可扩展性。此外,无论客户端设备如何,REST/HTTP 服务都应该返回相同的结果;否则,在处理客户端和服务之间的缓存和代理时,您会很头疼。
如果您正在尝试专门为 iOS 设置内容格式,您最好添加一个特定参数,如 ?format=ios 而不检查 header ,然后只需确保您的 iOS 客户端使用该参数即可。这将更符合 REST 的精神,并使事情更容易缓存和测试。
关于api - 如何限制某些客户端的 API 端点访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32533064/