Я собираюсь создать систему, которая имеет 2 части: 1. Веб-сайт PHP (CakePHP). 2. Мобильное приложение (Android и iPhone).
Пользователь должен войти в систему с помощью usr & pwd, чтобы использовать мою систему (веб-и мобильное приложение). Но у меня нет большого опыта аутентификации пользователей. Что я должен хранить: usr & pwd, токена. Я хочу найти «модель аутентификации пользователя» для моей системы (веб-и мобильное приложение).
Есть ли у кого-нибудь опыт аутентификации пользователей. Кто-нибудь знает, как это реализовать? Любой пример кода? Помогите мне плз 🙂
Это то, что мы делаем для наших приложений,
Сначала мы отправляем имя пользователя и пароль на сервер из нашего приложения.
На сервере они аутентифицируют учетные данные и возвращают ответ, который представляет собой комбинацию флажка токена запроса и приоритета.
В нашем приложении мы проверяем флаг sucess. Если его значение равно true, мы сохраняем токен запроса и используем его для всех следующих исходящих запросов на сервер.
Теперь, когда сервер получает запрос, он проверяет базу данных, чтобы узнать, есть ли у пользователя этот токен. Если это так, оно проверяет время, в которое был сделан последний запрос. (Это относится к случаям, когда время входа пользователя завершено.). Если разница между текущим временем и временем последнего запроса больше установленного вами предела, вы ответите на это приложение, что для получения нового токена требуется новый запрос на вход. В противном случае вы продолжите запрос и ответьте на результаты.
Вот как это делают ребята на стороне сервера на моем рабочем месте. Im работает на стороне клиента. Но это в основном то, что сделано.
Изменить: о маркере. Его в основном строка из 32 символов, которая генерируется методом случайных генераторов. Поэтому, когда пользователь отправляет запрос на вход и логин имеет успех, мы создаем токен с использованием метода генератора и сохраняем его в нашей базе данных сервера в качестве маркера пользователя с текущим временем и датой.
Поэтому, когда пользователь отправляет другой запрос на сервер, мы сначала берем токен и проверяем, существует ли пользователь с этим токеном. Если есть, то следующая проверка заключается в том, чтобы увидеть, является ли это старым маркером запроса. Поэтому мы проверяем текущее время со временем, сохраненным в базе данных. Если запрос был отправлен до предела (например, 5 минут), мы обновляем последнее время запроса в базе данных с текущим временем и возвращаем результат клиенту.
С помощью этого метода вы выполняете аутентификацию для каждого запроса, проверяя токен и время последнего запроса.
Предположим, вы хотите, чтобы ваше приложение регистрировалось все время, пока пользовательская ошибка не завершится. В этом случае вам не нужно проверять каждое время запроса. Все, что вам нужно сделать, это сохранить токен запроса на клиентском устройстве. И когда пользователь выберет, удалите токен с клиента. Поэтому он должен будет войти в следующий раз, так как он не имеет токена. Его бит более безопасен для сохранения токена запроса на клиентском устройстве, чем сохранение имени пользователя и пароля в этом сценарии.
Существует множество функций для генерации случайных токенов.