2016-04-23 4 views
1

Я пытаюсь реализовать JWT в Laravel 5.2, но я получаю эту ошибку:Laravel JWT Auth ошибка

"message": "call_user_func_array() expects parameter 1 to be a valid callback, class 'Illuminate\\Auth\\TokenGuard' does not have a method 'once'", 
    "status_code": 500, 
    "debug": { 
    "line": 288, 
    "file": "/home/vagrant/Code/lsupport/vendor/laravel/framework/src/Illuminate/Auth/AuthManager.php", 
    "class": "ErrorException", 

Мои маршруты Файл:

$api = app('Dingo\Api\Routing\Router'); 

$api->version('v1',function($api) 
{ 
    $api->post('login','App\Http\Controllers\Auth\[email protected]'); 
}); 

Мой AuthController:

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

     try { 
      if(!$token = JWTAuth::attempt($credentials)) { 
       return $this->response->error(['error' => 'User credentials are not correct!'],401); 
      } 
     } catch(JWTException $ex) { 
      return $this->response->error(['error' => 'Something went wrong!'],500); 
     } 
     return $this->response->item(compact('token')); 
    } 

Я тестирую postman.

ответ

3

У меня была такая же проблема, я решил ее, установив свой защитник по умолчанию на «web» в файле auth.php внутри папки config.

'defaults' => [ 
    'guard' => 'web', 
    'passwords' => 'users', 
], 

Помните, что ваш маршрут не должен иметь промежуточного ПО авторизации для этого входа, потому что это просто для аутентификации.

+0

Thankyou !! Это так полезно! – Jamie

+0

тоже работал для меня! –

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