Почему Laravel Session возвращает null? - PullRequest
0 голосов
/ 26 октября 2018

Я звоню в конечную точку API Laravel http://localhost:8000/api/adduser из компонента Vue Js. Предполагается, что конечная точка устанавливает значение, например, токен для сеанса, который я получу позже. Конечная точка вызывается успешно, однако сеанс не установлен. Код для моей конечной точки:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Auth;

use App\User;
use Hash;
use Session;

class UserController extends Controller
{
    public function adduser(Request $request) {

        $user = User::where( 'sub', $request->sub )->first();

        if(!$user) {

            $user = new User();

            $user->nickname = $request->nickname;
            $user->name = $request->name;
            $user->sub = $request->sub;
            $user->api_token = $request->api_token;

            $user->save();

        }

        $user->api_token = $request->api_token;
        $user->save();
        //setting session here
        session(['info' => 'hello world']);
        Session::save();

        return response()
            ->json([
                'done' => $user->api_token
            ]);

    }
}

Компонент Vue Js, который вызывает конечную точку:

<template>
  <div class="callback">Callback</div>
</template>

<script>
import axios from 'axios'
import Flash from '@/helpers/flash'

export default {
  name: 'callback',

  mounted() {
    this.$auth.handleAuthentication().then((data) => {
      //this.$router.push({ name: 'home' })

      let form = {nickname: this.$auth.user.nickname, 
                  name: this.$auth.user.name, 
                  sub: this.$auth.user.sub, 
                  api_token: this.$auth.api_token}

      Flash.setSuccess('You have successfully signed in.')

      axios({
            method: 'post',
            url: 'http://localhost:8000/api/adduser',
            data: form
        }).then((res) => {

            if(res.data) {       

                window.location.href = "/";
                }

            })
            .catch((err) => {
                if(err.response.status === 422) {
                    this.error = err.response.data.errors
                    console.log(this.error)
                }


            });


    })
  }
}
</script>

Чтобы проверить, был ли установлен сеанс, я попытался извлечь данные сеанса из файла welcome.blade.php, например, dd{{session('info'}}, но это возвращает ноль. Что мне здесь не хватает?

...