【发布时间】:2015-01-16 00:40:22
【问题描述】:
我想让我的 API 只能通过单个密钥进行访问。此 API 密钥将在我的环境变量文件中。每次用户都会尝试访问我的 API。我会先检查是否键 是否存在于请求正文中。之后,我将检查与我的固定密钥匹配的密钥。如果两个条件都满足,我会调用 api 否则会返回 401 错误。
我尝试寻找中间件,但没有找到针对这种情况的任何解决方案。护照可以用 但它要求基本/本地/摘要策略的用户名和密码,Oauth 和 OpenId 基于第三方提供商。
我通过在控制器本身中添加密钥检查功能解决了这个问题。就像路由器直接路由到 我的 API 进入 API 控制器后,我调用密钥身份验证功能。但这似乎不是标准的方式。 相反,我想阻止用户在路线杆本身。
如果有人遇到这种情况,请分享适当的解决方案。
【问题讨论】:
-
您不需要,也不应该有更多的身份验证,而不是检查 API 密钥与静态密钥。您似乎想跟踪 API 调用来自哪个用户,在这种情况下,您应该为每个用户创建一个唯一的 API 密钥。不要让它变得过于复杂。
标签: api rest express passport.js