api - 如何限制某些客户端的 API 端点访问?

标签 api rest oauth-2.0 django-rest-framework

我正在使用 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/

相关文章:

api - 如何保护我在 playframework 中开发的 REST api

c# - “The JSON value could not be converted to System.String” 尝试调用 Controller 端点时

azure - Cortana Skill 是否支持使用 Azure AD B2C 帐户登录?

javascript - 从 chrome 扩展中的谷歌分析 api 获取数据?

PHP + Youtube API - 如何允许用户将视频上传到我自己的 channel ?

python 请求 - 使用 'idna' 编解码器编码失败(UnicodeError : label empty or too long) error

CertPathValidation OpenSSL C API

javascript - 父子关系对应的REST调用如何判断和调用

rest - 基于 token 的身份验证 (TBA) - OAuth - Netsuite - 其余网络服务 - 无效的登录尝试

spring-boot - OAuth/ token 上的 Spring Boot REST 服务选项 401