简介

JWT(json web token),是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准(RFC 7519).该token被设计为紧凑切安全的,特别使用于分布式站点的单点 登录(SSO)场景。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其他业务逻辑所必须的声明信息,该token也可直接被用于认证,也可被加密.

安装jwt-auth

sudo composer require tymon/jwt-auth:"^1.0@dev"

Lumen 使用插件jwt-auth 实现用户认证_开发语言

修改bootstrap/app.php文件

1.将
$app->withFacades();

$app->withEloquent();
注释去掉。这样就可以通过Auth::user(),获取到当前用户

2.讲auth中间件取消注释
$app->routeMiddleware([
‘auth’ => App\Http\Middleware\Authenticate::class,
]);

3.将
$app->register(App\Providers\AppServiceProvider::class);
$app->register(App\Providers\AuthServiceProvider::class);
注释去掉

4.在app\Providers\AppServiceProvider中注册LumenServiceProvider

$this->app->register(\Tymon\JWTAuth\Providers\LumenServiceProvider::class);

5.修改config/auth.php

'guards' => [
        'api' => [
            'driver' => 'jwt',     //将原来的api改成jwt
            'provider' => 'users'  //新增
        ],
    ],


    'providers' => [
        // 原来为空 现在填写一下内容
        'users' =>[
            'driver' => 'eloquent',
            'model'  => \App\User::class,
        ],
    ],

6.生成一个secret
sudo php artisan jwt:secret