如何在客户端维护用户会话?

时间:2014-09-03 06:19:31

标签: api rest session authentication

所以我有一个REST API。我在设置客户端身份验证时遵循了this教程。我完成了这件事。现在,下一部分是用户身份验证。我的想法是这样的:

  1. 客户端将登录详细信息发送给API。
  2. API验证用户名和密码,并生成发送回客户端的令牌。
  3. 客户端将令牌存储在某处,并将其用于后续请求的身份验证。
  4. 问题,这是在这样的设置中维护会话的正确方法吗?是否有更好的方法来实现这一点?我对这类事情很陌生,所以请详细说明你的答案。请注意,API是纯REST,客户端可以是任何东西(例如,Angular,iOS,Android应用程序)。因此,前端与API不在同一服务器上并不典型。

1 个答案:

答案 0 :(得分:0)

你可以做到这一点,但你会走出已证实的安全模式。这可能是不明智的,会给你很多额外的工作和头痛。但是,这是一个公开REST API并创建了自己的OAuth扩展的服务提供者。它类似于您概述的内容,因此我列出了此处的步骤作为示例,但不一定建议您遵循:

  • Consumer Application直接收集用户的凭据
  • Consumer Application将用户名和密码与空格连接,base64对凭据进行编码
  • Consumer Application将编码的凭据放在请求的正文中。凭据必须在进行base64编码后进行URL编码
  • Consumer Application将它们发布到指定的URI(例如:api.com/v1/user/accesstoken)
  • 此请求使用OAuth签名请求进行签名
  • 服务提供商将把消费者应用程序交给一个访问令牌
  • Consumer Application将使用Access Token
  • 访问用户的数据