我刚刚开始研究在我即将推出的应用程序中实现用户身份验证的最佳方法。
这是我到目前为止所做的:
这就是我想要的内容:
这是我目前所知道的:
我不知道哪个是从iOS实现用户身份验证的最佳方法。我应该发送用户名和密码吗?我应该发送一些哈希吗?有没有办法确保握手?
我肯定会感谢您从之前的经历中获得的任何建议,提示或建议。
我不想只是实现它,而是希望尽可能好地实现它。
答案 0 :(得分:2)
有关于此的书籍,所以这里给出的任何答案都是不完整的。所以,我将向您概述实际上最简单的事情。保护此类服务的最低要求是使用SSL / TLS保护的HTTP基本身份验证(由AFNetworking和PHP本地支持)。
基本身份验证是一种以标准方式散列(不加密)凭据并将其作为请求中的一个标头发送的方式(Authorization: Basic <Base64-encoded concatenated credentials>
)。 AFNetworking支持此作为其AFHTTPClient
类的一部分(请参阅-setAuthorizationHeaderWithUsername:password:
方法)。 PHP将身份验证标头解析为一对服务器变量($_SERVER['PHP_AUTH_USER']
和$_SERVER['PHP_AUTH_PW']
)。从这里,您只需针对您的用户数据库检查用户名/密码组合,并允许或禁止访问该资源。
将此技术与HTTPS配对至关重要的原因是凭据散列很容易可逆;你基本上是以明文形式发送密码,所以任何听你流量的人都可以抓住它。设置证书并通过安全通道发送请求可防止此类漏洞。
如果你想要更复杂一点,那么双腿OAuth也是这种情况的可行选择。