#laravel #session
Вопрос:
Мне нужно сохранить некоторые пользовательские данные на сервере — когда пользователь не вошел в систему, а затем, когда пользователь входит в систему, мне нужно переместить эти данные в его новый сеанс. Это похоже на корзину покупок, но с большим количеством данных, которые необходимо сохранить на стороне сервера.
Есть идеи, как это сделать в Laravel pls?
Логин только по умолчанию от Laravel:
https://laravel.com/docs/8.x/authentication#authenticating-users
Комментарии:
1. не могли бы вы поделиться функцией входа в систему
2. @omaresmaeel-это просто логин std Laravel. Я мог бы реализовать это вручную — laravel.com/docs/8.x/authentication#authenticating-users
Ответ №1:
вы можете сделать что-то подобное в функции входа в систему
if (Auth::attempt($credentials)) {
$data = $request->session()->all(); //get the data of the guest session
$request->session()->regenerate();
$request->session()->put($data); // add it to the new auth session
return redirect()->intended('dashboard');
}
Комментарии:
1. Это немного сложнее, так как данные, сохраненные в БД, будут обрабатываться oldsession (я думаю), а также изображение, сохраненное на сервере, может находиться в папке старого сеанса (?), чтобы я мог их как-то сопоставить. Мне было интересно, есть ли рекомендуемый способ сделать это, кроме того, чтобы я делал что-то другое. Это также выглядит как угроза безопасности.