2015-12-07 4 views
2

Я сожалею, я новичок в APILaravel Mobile API Использование JWT

У меня есть проект Laravel и я хочу создать API для подключения моей базы данных Laravel для мобильных приложений, поэтому я стараюсь использовать JWT на моем композитор

"tymon/jwt-auth": "0.5.*" 

после этого я, добавив мой маршрут этот код

Route::group(['prefix' => 'api'], function() { 

    Route::post('login', 'Api\[email protected]'); 

    Route::group(['middleware' => ['jwt.auth', 'jwt.refresh']], function() { 
     Route::post('logout', 'Api\[email protected]'); 

     Route::get('test', function(){ 
      return response()->json(['foo'=>'bar']); 
     }); 
    }); 
}); 

И это моя функция Войти на контроллере

public function login(Request $request) { 
    $credentials = $request->only('email', 'password'); 

    try { 
     // attempt to verify the credentials and create a token for the user 
     if (! $token = JWTAuth::attempt($credentials)) { 
      return response()->json(['error' => 'invalid_credentials'], 401); 
     } 
    } catch (JWTException $e) { 
     // something went wrong whilst attempting to encode the token 
     return response()->json(['error' => 'could_not_create_token'], 500); 
    } 

    // all good so return the token 
    return response()->json(compact('token')); 
} 

После этого я использую Почтальон, чтобы проверить реакцию моего API, я вставить URL-адрес Localhost: 8000/API/Логин

, но я получаю сообщение об ошибке токенов

TokenMismatchException in VerifyCsrfToken.php line 53 

Что должно я делаю? где я должен создать токен?

ответ

4

Вы вводите токены JWT и токены CSRF. Эта проблема не имеет ничего общего с JWT, несмотря на термин «токен».

Laravel, по умолчанию, requires a _token value, который должен быть отправлен с каждым POST, чтобы предотвратить CSRF attacks.

Вы можете включить это с вашими запросами или отключить защиту CSRF для своего API, отредактировав App\Http\Middleware\VerifyCsrfToken значение $except.

+0

Какие вещи я должен отредактировать? извините, я не понимаю – yudijohn

+0

@yudijohn Посмотрите в 'app/Http/Middleware/VerifyCsrfToken.php'. И прочитайте документацию, которую я связал. – ceejayoz

Смежные вопросы