Почему laravel создает токен на каждый запрос? - PullRequest
0 голосов
/ 05 октября 2018

У меня есть следующий код, который использует Laravel Passport:

if(Auth::attempt($input, true)) {
    return \Auth::user()->createToken(Auth::user()->name, []);
}

Итак, когда пользователь входит в систему каждый раз, Laravel создает токен снова и снова.Если это продолжится, то база данных наверняка будет перегружена.Может быть, я еще не понял, как работает API Auth.

Есть ли способ предотвратить это в Laravel или это то, что следует ожидать?

Ответы [ 2 ]

0 голосов
/ 05 октября 2018

Традиционный процесс взаимодействия с веб-сайтом состоит в том, что вы входите со страницы входа.Далее вы выполняете нужные вам действия и затем выходите из системы.Однако в случае REST API этот процесс совершенно другой.Традиционная процедура не работает в случае API RESTful, потому что методы, используемые на странице входа, не имеют никакого смысла.Вместо этого вам нужно использовать api_token.

Все, что вам нужно сделать, это добавить api_token в строку запроса перед выполнением запроса, и запрос будет аутентифицирован.

Теперь то, что предлагает Laravel 5.5, вполнеинтересно!Вы можете легко реализовать эту идею, используя библиотеку Passport .

0 голосов
/ 05 октября 2018

В отличие от обычного контекста веб-приложения, где у вас есть сеансы, которые сохраняют (вошли в систему) состояние, обычно ожидается, что API-интерфейс (RESTful) не имеет состояния.Это означает, что запрос не должен зависеть от запросов, которые произошли ранее.Все необходимое для запроса, включая аутентификацию и авторизацию, должно обрабатываться в каждом отдельном запросе.

Подробнее см. Cassio Mazzochi Molin * объяснение приложений без сохранения состояния без остатка .

С уважением,

Драко

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...