Laravel не определяется Только с Гость

Я бы настроил систему подписки на модель видео канала. Я использую Vuejs и Laravel 5.3

в моем шаблоне лезвия я положил это

    <script>
window.Laravel = <?php echo json_encode([
'csrfToken' => csrf_token(),
]); ?>
<script>

Все работает нормально в режиме аутентификации (когда пользователь входит в систему), но в гостевом режиме мой компонент vuejs не работает, и я получаю это в своей консоли

ReferenceError: Laravel is not defined

Скриншоты
https://image.ibb.co/bPJCWG/laravel_Vuejs_Error_Guest.jpg
Количество подписчиков исчезает, ничего не работает

это мои коды:

контроллер:

public function show(Request $request, Channel $channel)
{
$response = [
'count' => $channel->subscriptionCount(),
'user_subscribed' => false,
'can_subscribe' => false,
];

if($request->user())
{
$response = array_merge($response, [
'user_subscribed' => $request->user()->isSubscribedTo($channel),
'can_subscribe' => !$request->user()->ownsChannel($channel),
]);
}

return response()->json([
'data' => $response
], 200);
}

Компонент SubscribeButton.vue:

<script>
export default {
data () {
return {
//...
}
},
props: {
//...
},
methods: {
getSubscriptionStatus () {
this.$http.get('/subscription/' + this.channelSlug).then((response) => {
this.subscribers = response.body.data.count;
this.userSubscribed = response.body.data.user_subscribed;
this.canSubscribe = response.body.data.can_subscribe;
})
}
},
mounted () {
this.getSubscriptionStatus();
}
}

Пожалуйста помоги!

0

Решение

это потому что csrf работает только для аутентифицированных пользователей. Вы должны изменить свою часть JavaScript, чтобы учесть анонимных пользователей, например:

@if (Auth :: check ())

// ваш window.laravel JS здесь

@endif

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]