首页 文章

webapi休息......最好的做法是避免SESSION

提问于
浏览
0

我正在使用ExtJS为客户端创建我的第一个webapi项目,并尝试了解登录过程 . 我试图了解SESSION用于什么,如果我使用REST,SESSION不应该成为它的一部分 .

REST设计是无状态的 . 通过添加会话(或其他类似的东西),您可以使其成为有状态并且无法使用RESTful API . RESTful服务的整体思想是每个资源都是唯一可寻址的,使用通用语法在超媒体链接中使用,并且每个HTTP请求应该自己携带足够的信息,以便其接收者处理它以与HTTP的无状态特性完全协调“ .

我在会话上有点困惑...通常,当用户登录会话ID记录在服务器的某个地方?然后,当用户发出另一个请求时,url会将此sessionID发送回服务器,如果ID有效,则继续请求 . 我有这个权利吗?

另一方面,在休息时,请求消息基本上每次发送请求时都发送用户名/密码 .

我有这个权利吗?在我的webapi上使用REST,我可以跳过SESSION的整个概念,只是继续发送用户名/密码......还是有更好的方法?

1 回答

  • 1

    我可以跳过SESSION的整个概念,只是继续发送用户名/密码......还是有更好的方法?

    是的,Web API具有基于令牌的授权 - 承载令牌 . 通过使用它,您可以完全避免使用会话状态 .

    Secure a Web API with Individual Accounts and Local Login in ASP.NET Web API 2.2

    在坚果shell中,当用户成功通过身份验证时,服务器会发出令牌而不是会话状态 . 然后,每个请求,用户都会发送相同的令牌以及有效负载 .

相关问题