Скажем, у меня есть API /api/send-otp, который принимает номер телефона в качестве входных данных и отправляет otp на номер телефона пользователя. Теперь этот API не может быть аутентифицирован, потому что токен аутентификации генерируется после успешного вызова /api/confirm-otp.
Как убедиться, что вызов /api/send-otp поступает только от авторизованного приложения андроид, а не от какого-либо скрипта / клиента.
PS: Я не могу встроить логику хеширования в apk, так как ее можно перепроектировать. Предоставляет ли что-то Google (сеть безопасности)? Любая соответствующая ссылка на документацию / реализацию будет полезна.
How to make sure that the /api/send-otp call is coming only from the authorized android app and not from any script/client
Самый простой способ - передать параметр индикатора, например app_version, и проверить его на стороне сервера. Если его нет, отмените аутентификацию запроса.
В качестве альтернативы вы можете использовать старую версию Google Play Services GoogleAuthUtil.
You use the GoogleAuthUtil class, available through Google Play services, to retrieve a string called an “ID Token”. You send the token to your backend and your backend can use it to quickly and cheaply verify which app sent it and who was using the app.
Проверка внутренних вызовов из приложений Android
Также есть еще один способ, Google Sign in, упоминание в этот блог по безопасности
app_version можно легко перехватить, и затем запрос можно будет отправить через Postman / cURL
Я согласен. Поскольку ваш полный код / ресурсы находятся на стороне пользователя. они могут получить все, что захотят, это просто вопрос их серьезности ..
Что ж, сеть безопасности - лучший подходящий сценарий для вашего приложения ... Подробно объясните этот блог: medium.com/@hargoyal/… надеюсь, что это будет полезно