使用 REST 的用户身份验证
Posted
技术标签:
【中文标题】使用 REST 的用户身份验证【英文标题】:User Authentication using REST 【发布时间】:2011-07-31 18:54:53 【问题描述】:如果我的问题似乎是重复的,但我还没有找到答案,我深表歉意。
我正在使用 Spring 3.0 构建一个基于 REST 的应用程序,并计划最终部署到 Google App Engine。现在我的客户端可以是原生 android、iPhone 或基于 Web 的客户端。
我的用户需要使用存储在持久层内的服务器中的用户名和密码登录。现在说我的 Android 客户端打开应用程序并显示登录屏幕是用户。现在用户输入用户名和密码。
我知道这将是一个帖子,并说我的服务端点是注册。所以它会像
发布 /注册
现在我打算将用户名和密码放在 Json 或 XML 格式的消息正文中。我的问题是“这是正确的做法吗?”我打算使它成为 SSL 但我应该如何在 body 中真正发送这样的敏感信息。我计划在成功的身份验证时返回一个 OAUth 令牌,并使用它在未来的所有服务调用中验证用户。
提前致谢。
【问题讨论】:
【参考方案1】:听起来你的想法是对的。 SSL 应确保您选择的任何发送方法都是安全的。
记住在存储密码之前对密码进行加盐 + 哈希处理: web cryptography - salted hash and other tasty dishes
【讨论】:
非常感谢您的回答。我是否需要担心任何其他安全威胁....【参考方案2】:使用授权标头发送用户名和密码信息。这就是它的用途。
【讨论】:
非常感谢您的意见。 Authorization Header - 使用授权标头有什么好处? @SaKet 那是 HTTP 打算放置授权信息的地方。见tools.ietf.org/html/draft-ietf-httpbis-p7-auth-13以上是关于使用 REST 的用户身份验证的主要内容,如果未能解决你的问题,请参考以下文章
检测用户首次使用 Django Rest Framework 进行身份验证
通过我的 REST API 和 Facebook 进行用户身份验证