Для (почти) каждого действия приложение Android выполняет запрос к php-скрипту, расположенному на сервере, для отправки / получения данных. Для каждого такого запроса имя пользователя / пароль пользователя приложения передаются в сценарий для авторизации.
Однако скрипт использует функцию php password_hash () для проверки учетных данных пользователя при каждом доступе. Так как password_hash () работает медленно, это приводит к плохому взаимодействию с пользователем, потому что APP нужно долго, пока запрошенные данные не будут обработаны / возвращены сценарием в APP.
Интересно, как решить эту проблему.
Один из подходов, которые я собираюсь использовать, заключается в том, что сценарий отправляет в дополнение к имени пользователя / паролю также идентификатор сессии. Сценарий, в свою очередь, запускает функцию password_hash () только каждые X минут и / или каждый запрос Y вместе с обновлением sessionID (в случае, если учетные данные пользователя действительны). Во время других обращений проверяется только допустимость sessionID. Идентификатор сеанса сохраняется на сервере в виде простого текста, поэтому эта проверка выполняется быстро.
Поскольку учетные данные пользователя и идентификатор сеанса могут быть угаданы третьей стороной, вероятно, нет большой разницы в том, чтобы избежать недопустимого доступа.
Единственный недостаток предлагаемого подхода, который я вижу, может заключаться в том, что sessionID хранится в виде простого текста, так что он может быть прочитан третьей стороной (которая каким-то образом получила доступ к базе данных). Однако этот риск можно уменьшить, адаптируя соответствующие значения X и Y, следовательно, адаптируя период времени, когда идентификатор сессии действителен.
Есть ли альтернативы или недостатки этого подхода?