Как сохранить данные пользователя (на стороне сервера), когда пользователь не вошел в систему, а затем переместить данные в его учетную запись?

#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 (я думаю), а также изображение, сохраненное на сервере, может находиться в папке старого сеанса (?), чтобы я мог их как-то сопоставить. Мне было интересно, есть ли рекомендуемый способ сделать это, кроме того, чтобы я делал что-то другое. Это также выглядит как угроза безопасности.