我通过检查 Authorization 标头中的令牌来授权所有 REST API 请求:
POST /rest/resource HTTP/1.1
Host: domain.com
Authorization: Bearer AbCdEf123456
令牌是纯文本,使用 HTTPS。但是,令牌在数据库中被加盐和散列。
我如何验证请求?
- 还将用户 ID 发送到服务器,从数据库中为该用户选择令牌哈希,检查令牌是否正确(发送用户 ID 的问题 - 放置位置)
- 检查数据库中的某些哈希是否对应于从用户收到的令牌(性能问题)
必须有一些优雅的方式,因为例如对于谷歌地图,“API 密钥”(令牌)就足够了。