Это может быть что-то тривиальное для многих из вас, но мне не повезло в понимании правильного потока для моего сценария использования. Я создаю API для наших мобильных приложений (IOS & Android) и, как и большинство веб-приложений, API имеет определенные функции / страницы (с точки зрения веб-сайта), которые могут быть доступны только зарегистрированному пользователю. Поскольку сеансы обычно не приветствуются в конструкции API, мне интересно, как отслеживать такие вещи в API. Мой вопрос, как мне определить это:
По сути, я ищу руководство по поддержанию состояния без гражданства.
Попробуйте отправить session_id после успешной аутентификации пользователя.
Это может быть создано как хэш md5 из user_name с добавлением текущей временной метки.
На стороне сервера I вы можете создать таблицу session_data (session_id, user_id, last_access_time, session_data), которая будет отображать session_id для пользователя. Сессия устареет после того, как last_access_time устареет.
Этот подход не идеален для интенсивного взаимодействия с пользователем, так как вам придется обновлять session_data после каждого запроса.
В этом случае такую таблицу можно перенести в любое быстрое хранилище.
В разработке API нет такой концепции, как состояние входа в систему и т. Д. Вот почему оно не имеет состояния. Вы должны аутентифицировать каждый запрос (поэтому отправляйте имя пользователя и пароль при каждом запросе).
примечание: вы можете иметь сеанс, но он поддерживается клиентом REST, поэтому API ничего об этом не знает.