我正在开发一个公共 REST API。注册的客户端将获得一个 API 密钥来使用 API,来自他们的服务器(而不是来自浏览器)。单个客户端也可以有多个密钥,可能用于其服务器上的唯一应用程序。所以我很好奇人们会在哪里验证 API 密钥......
使用委托处理程序(通常用于身份验证)并查找密钥。
使用授权过滤器查看密钥是否被授权。
对于未经授权的,我想返回 400 - 错误请求或 403 - 禁止(在密钥暂停的情况下)。
我的第一个想法是密钥是授权访问,并且不识别使用该服务的应用程序。但是,在委托处理程序中查找密钥允许我更快地短路(在 HTTP 消息处理程序中),而不是在授权过滤器触发的控制器中。