另一个但不同的休息和会议

时间:2015-12-31 18:24:27

标签: rest

我读了这篇文章的优秀答案:If REST applications are supposed to be stateless, how do you manage sessions?和几篇类似的帖子,但我仍然有RESTful应用和会话的特定问题:

在用户需要登录以每月只执行一次请求的应用中:使用RESTful应用程序是否可行?

我问这个是因为在REST技术中禁止在服务器上保存会话状态但是我在哪里可以保存客户端执行请求的最后日期,以便在检查上述条件(每月一次)后我积极地服务他的请求。或者这对REST技术来说是不可行的?

更新

我首先接受了以下答案,但我remember我读到了这个:

  

从客户端到服务器的每个请求都必须包含所有信息   必须了解请求,并不能利用任何   存储的上下文在服务器上

同样从第一个链接回答:

  

客户端的应用程序状态永远不应存储在服务器上

所以我的问题仍然是一样的。请帮忙

2 个答案:

答案 0 :(得分:1)

会话声明"无状态"指的不是那种信息。这仅表示服务器无法存储客户端的当前状态。 没有禁止在服务器上存储最后一个连接日期。您也可以使用LocalStorage将其存储在客户端上。

答案 1 :(得分:0)

客户的状态不是这里的问题,而是凭证。凭证通过授权方案进行管理,授权方案通常以UUID的形式生成令牌,UUID随每个请求一起传递以识别客户端。如果在SSL之上实现,则非常安全。

这个过程看起来像这样。

  1. 客户端使用用户名+密码登录。
  2. 服务器验证并返回uuid / token。
  3. 客户端发出REST请求。
  4. 服务器查看请求中的令牌
  5. 服务器查找令牌并确定令牌是否已过期。
  6. 如果令牌过期,服务器将返回http授权 错误(401)
  7. 如果令牌未过期,则服务器返回a中的数据 响应。