Есть обычный способ, которым это делается, и это обычно с некоторой формой аутентификации токена.
Однако вы, вероятно, захотите узнать больше о безопасности, за исключением того, что вы делаете только игрушечное приложение вы собираетесь использовать. С учетом сказанного, PHP очень хорошо справляется с сессиями, поэтому вы можете рассмотреть возможность использования ie jar-файла в своем приложении и воспользоваться преимуществами сессий. Пуристы REST, вероятно, повесят меня за это предложение, но знаете что? Он отлично работает при условии, что вы собираетесь использовать свой API только для своего приложения.
Еще одно быстрое и простое решение - выполнить обычную электронную почту и пароль для входа из вашего приложения. В случае успеха верните пользователю случайно сгенерированный токен и также сохраните его в таблице в своей базе данных. Этот токен - это то, что вы можете сохранить в sharedpref, и он будет отправляться вместе с каждым запросом. Чтобы сделать вещи более интересными, вы можете позволить токену истечь, скажем, через 10 минут, если он не использовался. В вашем приложении это будет означать, что пользователю необходимо снова войти в систему и сгенерировать новый токен.
Если вы используете модель генерации токенов, вы должны убедиться, что токен трудно угадать. Я обычно просто использую что-то вроде этого для таких случайных буквенно-цифровых c строк:
$randomLongString = hash('sha384', microtime() . uniqid() . bin2hex(random_bytes(10)));
По истечении срока вы можете записать временную метку, к которой был осуществлен доступ к таблице токенов, сохранить ее в столбце с таким же токеном. Если старая отметка времени + (время истечения срока)> отметка времени сейчас, то вы знаете, что срок действия токена истек. Вернуть 401. Если не обновить старую метку времени текущей меткой времени, вернуть 200.
Это относительно простые, но эффективные решения, которые работают для настроек с одним сервером и основываются на том факте, что пользователь все еще остается тот же пользователь. Вы также можете проверить IP-адрес и идентификатор устройства перед генерацией токена. И если что-то из этого изменится по ходу дела, вы быстро аннулируете токен и предоставите пользователю возможность доказать, что он тот, кем он себя утверждает.