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();
    }
}

Please help!


person kouakou alexy    schedule 09.10.2017    source источник


Ответы (1)


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

@if (Аутентификация::проверить())

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

@endif

person Ali    schedule 09.10.2017
comment
Спасибо, Али, к сожалению, это не решает проблему. видеоплеер настроен с помощью vuejs и videojs. В гостевом режиме работает нормально. Но только компонент подписки дает мне эту ошибку. Я не понимаю - person kouakou alexy; 09.10.2017