我想开发一个简单的网络服务,使用Recess,这是一个Web框架,旨在简单易用并且本质上是RESTful。我发现在Recess中使用CRUD功能非常简单。我在MySQL数据库中创建了一个后端模型,并发现REST API已经可以使用。如何在RESTful API中完成用户身份验证?
这很好,但问题是我没有用户认证,这几乎使我上面描述的非常好的功能完全无用。在真实世界的应用程序中,需要认证才能访问用户特定的资源。例如,假设我正在开发一个简单的“待办事项”应用程序(顺便说一句,我不是)。用户对其他人将其列入待办事项列表的内容不感兴趣,因此该服务需要识别用户是谁,以便提供正确的数据。此外,不应允许用户阅读,删除或更新其他人的资源。
这通常通过登录系统完成。但是对于REST API,用户如何验证?客户是否需要在每次提出请求时提供用户的凭证(如用户名和密码)?这怎么可以避免?通常情况下,可以使用cookie,但这可能不是一种好的做法,因为并非所有的客户端都必须是网络浏览器。但是,如果我们要模仿cookies的功能,我们如何传输“cookies”内容(通常,这是在HTTP标头中完成的)?最后,我如何在Recess的内置REST功能中集成这些问题的解决方案?如你所见,我对开发REST API相当陌生,所以任何建议和指针都会受到欢迎。
听起来像一个计划。但是,如果我正在制作一个JavaScript Web应用程序来访问RESTful后端:如果将用户的凭证保存在某个方便用于请求的地方是不好的做法?如果页面发生变化,我应该将凭据保存在本地存储中吗?当我在开发桌面/移动应用程序时没有控制权时,有没有更好的方法? – Hassan
你总是可以加密和散列他们的凭证,这样你就不会存储/传递明文密码。使用类似SHA-256的东西,你会保持良好状态。 –