VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 网站开发 > PHP >
  • php教程之使用Laravel集成JWT认证开发RestfulApi(2)

  

生成 JWT 密钥

JWT 令牌通过一个加密的密钥来签发。对于 Laravel 5.5 或以上版本,运行下面的命令来生成密钥以便用于签发令牌。

1
php artisan jwt:secret

  

Laravel 版本低于 5.5 的则运行:

1
php artisan jwt:generate

  

这篇教程使用 Laravel 5.6。教程中接下来的步骤只在 5.5 和 5.6 中测试过。可能不适用于 Laravel 5.4 或以下版本。您可以阅读 针对旧版本 Laravel 的文档。

注册中间件

JWT 认证扩展包附带了允许我们使用的中间件。在 app/Http/Kernel.php 中注册 auth.jwt 中间件:

1
2
3
4
protected $routeMiddleware = [
 ....
 'auth.jwt' => \Tymon\JWTAuth\Http\Middleware\Authenticate::class,
];

  

这个中间件会通过检查请求中附带的令牌来校验用户的认证。如果用户未认证,这个中间件会抛出 UnauthorizedHttpException 异常。

设置路由

开始之前,我们将为所有本教程讨论的点设置路由。打开 routes/api.php 并将下面的路由复制到您的文件中。

1
2
3
4
5
6
7
8
9
10
11
Route::post('login''ApiController@login');
Route::post('register''ApiController@register');
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');
});
相关教程