API 密钥是在调用 Web API 时,用于识别调用者身份而颁发的唯一字符串。类似于餐厅的预约号码,服务器通过它来确认"此人已获得使用授权"。
API 密钥主要有三个作用:第一是认证 (识别谁在访问),第二是访问控制 (限制调用量或按套餐限制功能),第三是使用追踪 (记录谁在何时调用了多少次 API)。
大多数短链接服务都提供 API,支持通过程序批量缩短 URL 或获取点击统计数据。使用这些 API 需要先注册并获取 API 密钥,然后在请求的头部或参数中附带密钥发送,例如 "Authorization: Bearer sk-abc123..."。
API 密钥管理中最重要的一点是不要泄露密钥。将密钥硬编码后推送到 GitHub 仓库的事故屡见不鲜。GitGuardian 的 2023 年报告显示,GitHub 上每年有超过 1000 万个密钥 (API 密钥和密码) 被泄露。使用环境变量或专用的密钥管理服务,绝不在代码中直接写入密钥,这是铁律。
API 密钥与 OAuth 令牌的区别也值得了解。API 密钥适用于应用级别的认证,设置简单;OAuth 用于用户级别的授权,可以实现更精细的访问控制,但实现更复杂。个人开发或服务器间通信用 API 密钥,需要访问用户数据时用 OAuth,这是常见的选择方式。相关书籍可在 Amazon 上查找。