检查散列的REST API令牌

时间:2014-10-15 20:54:56

标签: security rest rest-security

我通过检查Authorization标头中的标记来授权所有REST API请求:

POST /rest/resource HTTP/1.1
Host: domain.com
Authorization: Bearer AbCdEf123456

令牌是纯文本,使用HTTPS。但是,令牌在数据库中被加盐并散列。

我如何验证请求?

  • 将用户ID发送到服务器,从数据库中为该用户选择令牌哈希,检查令牌是否正确(发送用户ID的问题 - 放置位置)
  • 检查数据库中的某些哈希是否与从用户收到的令牌(性能问题)相对应

必须有一些优雅的方式,因为例如谷歌地图“API密钥”(令牌)就足够了。

1 个答案:

答案 0 :(得分:0)

使用JWT(JSON Web Token)作为授权承载。 JWT可以在有效负载中拥有用户ID。您还可以轻松验证JWT是否由受信任方(可能是您)发布。 好处是您可以在不读取数据库值的情况下验证JWT。这完全是无国籍的。

这是JWT如何工作的简单解释: http://www.intridea.com/blog/2013/11/7/json-web-token-the-useful-little-standard-you-haven-t-heard-about

您可以找到几乎所有语言的JWT库(只需google)