我希望我的 REST API 服务器只能与我的 iOS 应用程序通信。用户群将不超过 1000 人,市场非常小,总体上不受欢迎。这就是为什么我认为除了简单的质询-响应身份验证(HTTP、OAuth 2.0、SSL)之外的任何事情都是过大的。但我不确定这个身份验证应该如何流动。这是我的想法:
- 客户端应用程序(用户)发送请求:api.example.com/auth?username=john
- 服务器以随机生成的字符串响应:“somerandomlygeneratedstring”
- 客户端获取字符串,将其附加到用户名,然后附加一个秘密字符串,在应用程序中硬编码并使用 MD5 对整个字符串进行哈希处理。
- 客户端将字符串传递给服务器:api.example.com/auth?username=john&response=thenewMD5hashstring
- 服务器生成相同的 MD5 哈希字符串,如果匹配,则将该用户标记为在数据库中已通过身份验证,并且从现在开始处理来自该用户的所有 API 请求。
我有正确的想法吗?还是我完全错了?请记住,我想要基本的安全性,对于这样一个小项目来说,任何太花哨的东西都会是矫枉过正。
此外,我不会在我的数据库中保留任何敏感数据,例如个人信息。