安装 lumen 项目(最新版本)
composer create-project --prefer-dist laravel/lumen lu8(项目名称)
1、安装Dingo
composer require dingo/api
2、配置Dingo
a、把 Dingo 的配置文件夹 (vendor/dingo/api/config)拷贝到根目录;
b、在 .env 中写入 Dingo 配置 ( 具体配置见: [https:
API_STANDARDS_TREE=vnd
API_SUBTYPE=lumen
API_PREFIX=api
API_VERSION=v1
API_NAME=api-demo
API_DEFAULT_FORMAT=json
API_DEBUG=true
c、 在 bootstrap/app.php 文件中开启门面和Eloquent模型, 注册 Dingo 的配置文件和 Dingo 服务提供者并开启应用服务提供者,如下:
$app->withFacades();
$app->withEloquent();
$app->configure('api');
$app->register(App\Providers\AppServiceProvider::class);
$app->register(Dingo\Api\Provider\LumenServiceProvider::class);
三: 安装及配置 JWT
1、安装 JWT
composer require tymon/jwt-auth
2、配置 JWT
a、 把 vendor/tymon/jwt-auth/config/config.php 文件拷贝到根目录下 Config 文件夹中并把它重命名为 jwt.php (获取 jwt 配置文件);
b、 在 bootstrap/app.php 文件中注册 JWT 的配置文件、开启 auth 路由中间件和 开启AuthServiceProvider服务、注册 JWT 服务提供者如下:
$app->configure('api');
$app->configure('jwt');
$app->routeMiddleware([
'auth' => App\Http\Middleware\Authenticate::class,
]);
$app->register(App\Providers\AppServiceProvider::class);
$app->register(App\Providers\AuthServiceProvider::class);
$app->register(Dingo\Api\Provider\LumenServiceProvider::class);
$app->register(Tymon\JWTAuth\Providers\LumenServiceProvider::class);
c、 生成 JWT_SECRET 写入.env(自动写入)
php artisan jwt:secret
在 .env 写入 JWT 其它配置(以下我是的配置)
JWT_SECRET=FvFnVjauHfgfdX6bCiJEAhfvSfFJ4ddaDPpdi2R4pkAn9TaiKLihdw0YIVLJboOQ
JWT_TTL=10080
四: 修改 api.php 和 jwt.php 配置文件
在 api.php 的 auth 数组中添加 api 权限验证类
'auth' => [
'jwt' => Dingo\Api\Auth\Provider\JWT::class,
],
把 jwt.php providers 数组中的 token 生成类(Lcobucci)修改为 Namshi 如下:
'providers' => [
'jwt' => Tymon\JWTAuth\Providers\JWT\Namshi::class,
.
.
.
五: 把 vendor/laravel/lumen-framework/config/auth.php 文件拷贝到根目录下 Config 文件夹中并做相应配置, 如下:
'guards' => [
'api' => [
'driver' => 'jwt',
'provider' => 'users',
],
],
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\Models\User::class,
]
],
六: 在 .env 中配置数据库
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=la8
DB_USERNAME=root
DB_PASSWORD=123
七: 创建 users 表
生成迁移文件并修改:
php artisan make:migration create_users_table
<?php
use Illuminate