0

在 RESTful 应用程序中,两个请求之间没有维护状态。每个请求都被视为一个全新的请求,即使它是由同一用户发送的。即没有会话。

在这种情况下,REST 应用程序如何处理用户登录信息?

  1. 是不是,在成功登录后,服务器会生成一个安全令牌并将其发送给客户端,然后客户端会为之后的每个请求将其发回?
  2. 如果上述情况属实,那么安全令牌存储在服务器的什么位置?数据库?(记住:没有会话)。
4

2 回答 2

1

是不是,在成功登录后,服务器会生成一个安全令牌并将其发送给客户端,然后客户端会为之后的每个请求将其发回?如果上述情况属实,那么安全令牌存储在服务器的什么位置?数据库?(记住:没有会话)。

嗯。向客户端发送一个令牌,该令牌将在每个后续请求中发回,只是为了从服务器端的数据库中检索与该令牌相关的信息?这叫做会话。这正是 PHP 会话所做的,除了将信息存储在文件中,而不是数据库中。您正在重新创建会话。

无论如何,我认为“没有会话,没有状态”的口头禅被高估了,而且不太实用。我认为存储一个包含令牌的简单 cookie 是完全可以的,这样您就可以识别用户,并将(一些)数据与该用户相关联。无论如何,我认为不存储应用程序状态(例如用户之前做了什么,他现在在做什么)是最重要的。

于 2012-01-19T10:23:28.987 回答
0

或者您可以在令牌中加密所有内容,每个请求都可以从该令牌中获取所有用户信息,包括名称、时间戳等。

服务器唯一需要知道的是编码/解码算法。

更好的是,服务器可以调用身份验证服务(可以是完全独立的盒子)来对用户进行身份验证和授权。

简单总是好的!

于 2012-08-23T00:44:35.923 回答