Laravel 5.2 постоянный идентификатор сеанса при входе, можно использовать _token?

#php #laravel #session #laravel-5.2 #session-variables

#php #laravel #сеанс #laravel-5 #переменные сеанса

Вопрос:

Мне нужно резервировать элементы в моей базе данных, когда пользователь добавляет их в свою корзину. В настоящее время я использую идентификатор сеанса ( Session::getId() ), однако он восстанавливается при входе в систему. Хотя вы можете совершать покупки в качестве гостя, для оформления заказа вам необходимо зарегистрироваться.

Если я посмотрю на все переменные сеанса с $request->session()->all() , с которыми я столкнулся _token , это выглядит как уникальная строка, и она не восстанавливается при входе в систему, поэтому я думал использовать это для своих корзин?

Безопасно ли это?

В противном случае мне пришлось бы сгенерировать свой собственный uuid в PHP и сохранить их как basket_id или что-то в этом роде, это избавило бы меня от необходимости это делать.

Заранее большое спасибо.

Комментарии:

1. _token предназначен для защиты от csrf-атаки. Подробнее здесь: laravel.com/docs/5.3/csrf

2. @ventaquil идеально, именно то, что я искал.

Ответ №1:

Хорошо, итак, я копирую свой комментарий сюда:

_token предназначен для защиты от csrf-атаки. Подробнее здесь:laravel.com/docs/5.3/csrf

поле_token уникально для каждого запроса. Вы можете отправить этот токен как переменную запроса или cookie.

Помните — по умолчанию для всех post-действий требуется это поле (одно из промежуточных программных средств следит за этим).

У вас есть доступ к значению токена с помощью функции csrf_token() — или csrf_field() для получения поля ввода HTML.

Ответ №2:

В Laravel есть драйвер базы данных для сеансов, https://laravel.com/docs/5.3/session#driver-prerequisites .

Используя это, вы можете ссылаться на таблицу сеансов в вашей таблице зарезервированных элементов. Вы узнаете, является ли пользователь гостем.

Вы даже можете просмотреть последнее действие и основывать свои зарезервированные элементы на этом.

Комментарии:

1. Я буду использовать redis для сеансов, думаю, я буду использовать подход с идентификатором корзины.