Laravel 5.6 Auth :: check () возвращает false, если вызывается с fetch - PullRequest
0 голосов
/ 02 июня 2018

Я хочу проверить, вошел ли пользователь через функцию JavaScript fetch().Но он всегда возвращает false, но если я вызвал URL прямо в адресной строке, он возвращает true, как и положено.Вот код:

/ route / web.php

Route::get('check-login', function () {
    if (Auth::check()) {
       return response()->json(['isLogin'=>'ok']);
    } else  {
       return response()->json(['isLogin'=>'no']);
    }
});

javascript:

fetch('/check-login', {
            headers:{
                'Accept': 'application/json'
            }
        })
            .then(response => {
                return response.json();
            })
            .then(result => {
                console.log(result);
            });

Что такоене так с моим методом?

Ответы [ 2 ]

0 голосов
/ 02 июня 2018

Я не знаю, ваш код JavaScript правильный или неправильный, но маршруты \ web.php должны быть

Route::get('check-login', function () {
    if (Auth::check()) {
        return response()->json(['isLogin'=>'ok']);
    } else {
        return response()->json(['isLogin'=>'no']);
    }
});

Этот код эквивалентен (удобочитаемость)

Route::get('check-login', function () {

   if (Auth::check()) {
       return response()->json(['isLogin'=>'ok']);
   }

   return response()->json(['isLogin'=>'no']);

});

Или вы можете использовать троичныйоператор

Route::get('check-login', function () {
   $isLogin = Auth::check() ? 'ok' : 'no';
   return response()->json(['isLogin'=> $isLogin]); 
});
0 голосов
/ 02 июня 2018

Может быть, это потому, что вы не указываете, что учетные данные должны быть включены, Fetch Api не использует cookie по умолчанию.Так что, может быть, так будет работать:

fetch('/check-login', {
        headers:{
            'Accept': 'application/json'
        },
        credentials: 'same-origin'
    })
        .then(response => {
            return response.json();
        })
        .then(result => {
            console.log(result);
        });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...