Самое простое из возможных решений в вашем случае - сгенерировать подпись на PHP-интерфейсе и включить ее в данные запроса вместе с другими параметрами.Затем ваш сервис AppEngine самостоятельно вычисляет подпись, и если вычисленная подпись совпадает с подписью, отправленной вами в запросе, запрос считается подлинным.
Вы генерируете подпись, используя какой-то секретный ключ, который известен только вашему php-интерфейсуи бэкэнд App Engine.Я программист Python, поэтому я не могу сказать вам, как это будет выглядеть в Java или php, но вам нужно выполнить следующие шаги:
В приложении php:
- Конкатенацияваш секрет с данными запроса, например,
SECRET_KEYid5newCost537
- Рассчитать подпись как хэш MD5 из приведенной выше строки.
- Включить эту подпись в запрос.
В App Engineapp:
- Извлечение
signature
, id
и newCost
из данных запроса. - Вычисление
signature1
с использованием того же алгоритма, что и в приложении php (то есть хэш MD5секретный ключ плюс данные, извлеченные из запроса). - Сравните
signature
и signature1
.Если они равны, запрос является подлинным. - Создайте собственную логику на основе результата сравнения.
Этот метод несколько похож на то, как работает подписание запросов в oAuth.Обратитесь к документации oAuth для получения дополнительной информации.
Также, если ваш вариант использования более сложный, чем указано в вашем вопросе, вы можете рассмотреть возможность использования oAuth с вашим Java-приложением .