Как поместить сеанс в Laravel с помощью Axios?

#php #laravel #vue.js #axios #session-variables

#php #laravel #vue.js #axios #сессия-переменные

Вопрос:

Я работаю над проектом с Laravel и VueJS.

В Laravel я использую только API маршрутизации и вызываю их с помощью Axios в VueJS.

Я хочу использовать сеанс, но когда я ввожу ключ, он не сохраняется.

Я добавил в промежуточную рабочую группу :

 'api' => [
            IlluminateSessionMiddlewareStartSession::class,
            AppHttpMiddlewareEncryptCookies::class,
            

            'throttle:60,1',
            'bindings',
            
            IlluminateRoutingMiddlewareSubstituteBindings::class
        ],
 

Чтобы поставить сеанс :

 Session::put('establishment_id', $establishments[0]->establishment_id);
            $request->session()->put('sp_token', $token);

            //session(['establishment_id' => $establishments[0]->establishment_id,'sp_token' => $token]);

            //TODO WHEN A USER LOGS IN, CHOOSE WHICH ESTABLISHMENT HE WANTS TO WORK WITH
            //IN FRONT-END, SWITCH EHPAD, RESIDENCE... AND CHANGE SESSION DATA

            //$establishments  = EstablishmentUser::where('user_id',$currentUser->id)->get();
            // if(count($establishments)==1){
            // } else if (count($establishments)>=1){
            //     //NEED TO CHOOSE ESTABLISHMENT
            // }

            return response()->json(['msg' => 'success'], 200)->header('Authorization', $token);
 

и когда я это сделаю :

 dd(Session::all())
 

существует только _token: value, а не другой мой сеанс.

Я изменил config / session: file в базу данных, но всегда есть эта проблема.

2 вопроса: возможно ли использовать сеанс в API? Если да, то как я могу решить эту проблему?

Извините за мой английский. Спасибо за ваш ответ!

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

1. Что вы добавили middlewareGroup ? Где находится этот код?

2. откуда вы делаете dd(Session::all()) , из блейд-php или из компонента vue, хотя вы не можете использовать сеансы php в vue, вместо этого вам нужно использовать локальное хранилище

3. Спасибо за ваш ответ. Я добавляю сеанс в свой контроллер (например, контроллер, который обрабатывает аутентификацию).

4. Спасибо за ваш ответ! @bhucho: Я добавил dd(Session:::all) в свое промежуточное программное обеспечение. Я не использую blade, я использую только component. Но я не исправил php в своем компоненте в vuejs.

5. если ваш интерфейс полностью разделен и переменные передаются с помощью api, то вы не можете использовать сеансы php в js, вам нужно использовать локальное хранилище (иногда файлы cookie)