Restful API和用户会话

由于restful api是无状态的,在这种情况下我该如何进行用户会话? 我说我是一套允许用户借书的api,并且我不需要用户登录来浏览这些书籍,我该怎么做? 用户只能在登录后才能预订,我该如何保持会话?


您的API会将身份验证令牌分发给登录的用户,并且您的终端将使用“需要授权”中间件进行定义。

GET /books (列出书籍,无需授权)

POST /books/:bookId (保留一本书,需要授权,如果未授权,则返回401)

客户端将在登录时在本地存储令牌,并为每个请求发送令牌(因为您将使用SSL,它可以在请求本身上)。

服务器需要在某处存储令牌,并在每个请求中通过中间件查找它们。 缺少令牌(未给定或未找到)意味着请求未通过认证。 令牌可以在本地存储在内存中以启动(如果服务器崩溃则消失,如果负载平衡多个节点则需要粘性会话),或者在某些持久性数据库(Redis,Mongo,MySQL)中。

通常这些会话有一个到期时间,每个动作也会刷新那个时间。 如果客户端收到“令牌过期”消息,则应重新登录以更新其本地副本,并让服务器存储新值。

链接地址: http://www.djcxy.com/p/41151.html

上一篇: Restful API and user session

下一篇: Codeigniter API session