在Laravel中使用JWT的正确方法

时间:2019-01-27 09:20:25

标签: php laravel jwt

我已经阅读了一些文章和论坛,以了解如何在后端实现JWT身份验证。 问题是我见过不同的方法和idk,哪一种是正确的。

考虑到我已经安装了JWT软件包。 之后,请执行以下操作:

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

'guards' => [
    ...

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

,然后在Controllers构造函数中使用

 $this->middleware('auth:api');

验证用户。他们说设置'driver' => 'jwt'将成为默认保护jwt。他们也使用

 $token = auth()->attempt($credentials)

验证令牌。这是第一批方法。

第二个从不更改config / auth.php中的任何内容(无驱动程序更改-无gaurd更改...)。

它们使用app / Http / Kernel.php中的中间件(routeMiddleware):

'auth.jwt' => \Tymon\JWTAuth\Http\Middleware\Authenticate::class,

,在进行路由时,他们使用一个组将其应用,例如:

Route::group(['middleware' => 'auth.jwt'], function () {
    Route::get('logout', 'ApiController@logout');

    Route::get('user', 'ApiController@getAuthUser');

    Route::get('products', 'ProductController@index');
    Route::get('products/{id}', 'ProductController@show');
    Route::post('products', 'ProductController@store');
    Route::put('products/{id}', 'ProductController@update');
    Route::delete('products/{id}', 'ProductController@destroy');
});

他们还使用$jwt_token = JWTAuth::attempt($input)$this->user = JWTAuth::parseToken()->authenticate();来获取并验证用户。

我对这些方法感到困惑,我应该使用jwt作为默认防护吗?还是我只是将其添加到我的包中并显式使用它?

0 个答案:

没有答案