Я звоню в конечную точку 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'}}
, но это возвращает ноль. Что мне здесь не хватает?