2016-01-22 5 views
2

У меня есть новая установка Laravel 5.1, но я получаю ошибку несоответствия токена, когда пытаюсь войти в систему. Я не использую форму, вместо этого я использую вызов ajax, который регистрируется пользователем после проверки Google.Laravel 5.1 Authentication - Token Mistmatch

Моя ошибка: TokenMismatchException in VerifyCsrfToken.php line 53

Мой контроллер, который становится хит с Ajax вызова:

<?php 
    namespace App\Http\Controllers; 
    use App\Email; 
    use App\Http\Controllers\Controller; 
    use Illuminate\Http\Request; 
    use Google_Client; 
    use Auth; 
    use App\User; 
    class verify extends Controller 
    { 

    public function verifyIdToken(Request $request) 
     { 
    $user = User::where('name', 'Molly')->first(); 
     Auth::login($user); 
     if (Auth::check($user)) 
{ 
    return response()->json(['Logged In' => "Yes!"]); 
} 
    } 
     } 

Я не получаю ответа, только внутренняя ошибка сервера 500 с вышеуказанной ошибкой. Однако я вижу, что рестайлер сеанса laravel возвращается, поэтому я очень смущен в отношении того, что происходит. Что это за токен и почему он бросает ошибку?

Для получения дополнительной информации, мой routes.php файл:

if (Auth::guest()) { 
    Route::get('/', function() { 
     return view('welcome'); 
    }); 
} else { 
    Route::get('/', ['middleware' => 'auth', function() { 
     return view('mainview'); 
    }]); 
} 

Edit: В основном я хочу, чтобы контроллер ударил в вызове Ajax для проверки пользователя был зарегистрирован в, без какой-либо внутренней ошибки сервера, так что на обновления , они перенаправляются на mainview, а не на страницу welcome.

+0

Вы посылаете токен на вызов ajax? – Meroje

+0

@Meroje Нет, где это могло бы произойти? –

ответ

3

Пробуйте следующий метод, начиная с Документов.

<meta name="csrf-token" content="{{ csrf_token() }}" /> 

$.ajaxSetup({ 
    headers: { 
     'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') 
    } 
}); 
+0

Так что я сделал это, и ошибка ушла, и я получаю набор файлов cookie, но после обновления домашней страницы я все равно получаю 'welcome' не' mainview' ... любую идею, почему? –

+0

Измените 'welcome' на' mainview' в маршрутах. – Gammer