Реализовать токен для аутентификации API Laravel 4 RESTful
Я начинаю работать с Laravel 4 framework и PHP.
В настоящее время я пытаюсь выполнить простой процесс проверки подлинности между клиентским приложением и сервером.
Ниже мой планируемый подход:
-
Клиент регистрируется на сервере с помощью запроса GET с именем пользователя и паролем.
-
Сервер проверяет и возвращает строку токена в случае успеха. Строка токена будет закодирована (hashed?) С именем пользователя, паролем и временем истечения срока действия.
-
Клиент отправляет запрос, включая указанный токен. Сервер будет проверять токен (декодировать его → проверить имя пользователя/пароль и истекшее время). В случае успеха он обработает запрос клиента.
Каков наилучший способ генерации токена с указанными выше параметрами и декодирование его на стороне сервера?
Спасибо, и я ценю ваше время и помощь.
Ответы
Ответ 1
Я не думаю, что неплохо хранить имя пользователя и пароль, закодированные в каком-то токене. Вместо этого создайте случайный токен после успешного входа в систему и сохраните данные, связанные с токеном на стороне сервера.
Вы можете записать запись о каждом входе в таблицу с столбцами token
, user_id
, valid_until
.
После каждого запроса найдите токен в базе данных, проверьте, действительно ли он действителен, и используйте user_id
для аутентификации.
Вы можете думать о маркете как о единовременном пользователе и пароле, например. рассмотрите первые 8 символов токена как временного имени пользователя, а остальное как пароль, если вам неловко задавать доступ без пароля:)
Также вы можете запустить некоторое задание cron для удаления устаревших записей из базы данных каждый день или около того.
Ответ 2
Вы можете использовать веб-маркеры JWT JSON для аутентификации, чтобы полностью исключить сеансы и файлы cookie. Подобный подход используется Facebook. Как только вы входите в систему с помощью электронной почты и pwd, вы получаете сетевой токен, поэтому даже если его взломали, вы не сможете получить из него pwd. Вы можете установить для ограничения срока действия токена.