Я хочу, чтобы мой сервер API REST мог общаться только с моим приложением iOS. База пользователей будет составлять не более 1000 человек, а рынок довольно маленький и непопулярный в целом. Вот почему я думаю, что что-либо, кроме простой проверки подлинности ответа на запрос (HTTP, OAuth 2.0, SSL), будет излишним. Но я точно не знаю, как это должно произойти. Вот что я имею в виду:Как точно реализовать запрос-ответ для аутентификации REST API?
- приложение клиента (пользователя) отправляет запрос: api.example.com/auth?username=john
- Сервер отвечает со случайным строки: «somerandomlygeneratedstring»
- Клиент берет строку, добавляет ее к имени пользователя, а затем добавляет секретную строку, жестко закодированную в приложении, и использует MD5 для хеширования всей строки.
- Клиент передает строку на сервер: api.example.com/auth?username=john & ответ = thenewMD5hashstring
- сервер генерирует тот же MD5 хэш строки и если они совпадают, то метки этого пользователя, как проверку подлинности в базе данных и все запросы API от этого пользователя будут обработаны с этого момента.
Есть ли у меня правильная идея? Или я совершенно неправ? Пожалуйста, имейте в виду, я хочу базовую безопасность, что-то слишком причудливое, было бы излишним для такого маленького проекта.
Кроме того, я не хранил никаких конфиденциальных данных в своей базе данных, как личные данные.