我正在尝试实施 Rest 方法来设计我的 Api。
请通过下面的工作流程并尝试消除我的疑虑并指出错误-
客户端(Web 浏览器)来自客户端的 Rest 调用 ->/post /login 用户名/密码
服务器 /login 服务与数据库检查用户名和密码是否正确响应 ok:200 + 发回数据-> X
客户端收到用户已通过身份验证的确认 + 数据 -> X 现在使用数据 X 对服务器进行后续调用,以通过其他服务调用获取用户特定信息
/get/FirstName_of_User/X 或
/get/LastName_of_User/X
现在我的疑问如下(执行以下操作的最佳做法是什么)
因为对于后续请求,我们需要告诉服务我们请求谁的数据,X 应该是什么?(创建的用户名或临时令牌(没有意义,因为 Rest 完全是关于无状态的)或其他什么?)
一旦这个 X 被返回,它应该存储在客户端的哪里,以便可以为每个后续请求起诉它?(Cookie 或其他方式存在)?
如果这是我进行后续调用的方式
/get/FirstName_of_User/X
如果这个电话也是由其他人发出的,那么它会给出结果,我希望刚刚登录的人只得到结果..
注册疑问 3 - 我在 stackoverflow 上找到了这个链接 - 会话是否用于 REST 身份验证?
建议使用 HMAC 并找到此链接 - http://www.thebuzzmedia.com/designing-a-secure-rest-api-without-oauth-authentication/它讨论了如何将 HMAC 用于 Rest(基本上讨论了客户端和服务器上的私钥并使用它来散列请求)..
我对这种方法的怀疑是 - 假设我使用密码作为客户端和服务器都知道的私钥..那么在客户端我们应该将密码保存在 cookie 中,然后散列每个后续请求吗?
感谢您对任何疑问的任何帮助表示赞赏
PS:我正在尝试使用 PHP + Mysql 实现系统