2

我目前正在实施“令牌”REST 服务。

令牌只是一个字符串,由一些参数构建而成,然后经过哈希处理并在一定时间后过期。

我想在我的 REST 服务中有一个可以验证令牌的端点,但我不能 100% 确定如何以 RESTful 方式实现它

  1. 我认为这应该通过 GET 完成,因为它不会更改状态,只要我正确设置缓存控件,它就可以缓存一段合理的时间。IEmysite.com/token/kjfhwekjfwekj
  2. 什么是适当的返回码?如果它是有效的,我会假设 200,但如果它是无效的呢?我觉得 400 是错误的,因为尽管资源本身无效,但客户端并没有错误地调用端点。404在这里正确吗?如果我们认为代币是短暂的资源,我猜是吗?
4

3 回答 3

6

GET是检查令牌的正确 HTTP 动词。

假设令牌“无效”意味着:

  1. 它从未存在过,或者
  2. 它存在但不再存在。

您希望您的服务的客户能够知道其中的区别吗?

  • 如果,则返回404 Not Found案例 1 和410 Gone案例 2。
  • 如果没有,返回404 Not Found

如果令牌存在,200 OK则正确。

于 2012-11-05T10:36:45.367 回答
1

如果你想Restful,可能最好使用HEAD方法,因为你不是在请求token,你只是想知道token是否存在。

HEAD 方法用于请求资源的元数据。GET 用于检索资源

于 2013-05-09T10:43:33.250 回答
0

服务器具有对称散列密钥;它可用于验证传入令牌是否由其他人生成。

于 2012-11-05T11:46:52.450 回答