未定义Auth防护驱动程序[api]

时间:2017-06-09 19:41:30

标签: php laravel laravel-5.3 jwt

我正在使用laravel 5.4并使用jwt auth jwt版本为jwt-auth "tymon/jwt-auth": "0.5.*"

在auth.php我有

'guards' => [
        'web' => [
            'driver' => 'session',
            'provider' => 'users',
        ],

        'api' => [
            'driver' => 'jwt',
            'provider' => 'users',
        ],
    ],

在Api.php我有

 Route::post('/login','HomeController@authenticate');


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

    // Authentication Routes...
   Route::get('/logout','HomeController@logout');
Route::get('/home','HomeController@home');

});

当我从邮递员发布电子邮件和密码时,它将返回令牌。

当我试图接受时

http://localhost/demo/public/api/v2/home

和标题i通过了授权承载令牌

我在邮递员中收到以下错误

  哎呀,好像出了什么问题。 (1/1)   InvalidArgumentException未定义Auth防护驱动程序[api]。在   AuthManager中的AuthManager.php(第99行) - >解析('api')   在AuthManager-> guard('api')中的AuthManager.php(第70行)   Authenticate.php(第61行)在Authenticate-> authenticate(array('api'))

可以帮我解决问题吗

此外,我还检查了自2016年9月27日旧版以来的问题 https://github.com/tymondesigns/jwt-auth/issues/860

3 个答案:

答案 0 :(得分:0)

确保在您的kernel.php文件中已将其声明为

 protected $routeMiddleware = 

答案 1 :(得分:0)

尝试设置token

'guards' => [
        'web' => [
            'driver' => 'session',
            'provider' => 'users',
        ],

        'api' => [
            'driver' => 'token', // here !
            'provider' => 'users',
        ],
    ],

答案 2 :(得分:0)

不一定是答案,但这是我使用过几次安装和设置JWT令牌的文章,但没有任何问题。

https://medium.com/employbl/build-authentication-into-your-laravel-api-with-json-web-tokens-jwt-cd223ace8d1a

希望这会有所帮助,祝你好运!