繁体   English   中英

如何在RESTful API中完成用户身份验证?

[英]How is user authentication done in a RESTful API?

我正在尝试使用Recess开发一个简单的Web服务,这是一个旨在易于使用并且本质上是RESTful的Web框架。 我发现在Recess中使用CRUD功能非常容易。 我已经在MySQL数据库中创建了一个带有后端的模型,并且发现REST API已经可供使用。

很好,但是问题是我没有用户身份验证,这几乎使我上面描述的非常好的功能完全没有用。 在实际应用中,访问用户特定资源需要身份验证。 例如,假设我正在开发一个简单的“待办事项”应用程序(顺便说一下,我不是)。 用户对其他人在他们的待办事项列表中放置的内容不感兴趣,因此服务需要识别用户身份,以便提供正确的数据。 另外,不应允许用户读取,删除或更新其他人的资源。

这通常是通过登录系统完成的。 但是对于REST API,如何验证用户身份? 每次发出请求时,客户端是否需要提供用户的凭据(例如用户名和密码)? 如何避免呢? 通常,一个人可以使用cookie,但这可能不是一个好习惯,因为并非所有客户端都一定是Web浏览器。 但是,如果我们要模拟cookie的功能,我们如何传输“ cookies”的内容(通常是在HTTP标头中完成)? 最后,我如何在Recess的内置REST功能中集成针对这些问题的解决方案?

如您所见,我对开发REST API尚不陌生,因此欢迎您提出任何建议和指针。

RESTful系统利用现有的现有技术,然后重新实现它们。 并且由于HTTP已经包含基本身份验证形式的身份验证支持,因此您应该重新使用它。 这是客户端传输其凭据的广泛支持的机制。

是的,客户端应随每个请求发送其凭据。 Cookies适用于不希望重复输入密码的人类客户,在这里情况并非如此。 Cookies暗示服务器上的会话有状态,这可能使可伸缩性非常困难。

关于RESTful身份验证,此网站上可能存在一百个问题。 我鼓励您搜索并阅读最受欢迎的文章。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM