环境
- homestead 7.2
- laravel 5.8
文档
- dingo/api: https://learnku.com/docs/dingo-api/2.0.0/Installation/1443
- jwt-auth: https://jwt-auth.readthedocs.io/en/docs/laravel-installation/
安装 dingo/api 和 jwt-auth
composer require dingo/api
composer require "tymon/jwt-auth:1.0.0-rc.4.1"
发布配置文件 && 生成秘钥
--all 是发布所有配置文件的意思
jwt:secret 是生成 jwt 秘钥用的
php artisan vendor:publish --all
php artisan jwt:secret
在 .env
文件中加入以下配置
# dingo/api config
API_STANDARDS_TREE=vnd
API_SUBTYPE=myapi
API_PREFIX=api
API_VERSION=v1
API_NAME="My API"
API_CONDITIONAL_REQUEST=false
API_STRICT=false
API_DEFAULT_FORMAT=json
API_DEBUG=true## jwt-auth secret key
JWT_SECRET=BCSToylCt2jIIuKNfkdzTkYoqpLMETgAv6JGWFA6kePyzGN9M2iRsZj1k1Z2uLiJ
测试服务
- 找到
/routes/api.php
创建端点 - 添加测试路由并测试
- 浏览器访问
http://yourhost/api/hello
$api = app('Dingo\Api\Routing\Router');
$api->version('v1', function ($api) {$api->get('/', function () {return 'hello dingo api';});
});
dingo/api 结合 jwt-auth 完成 api 认证
- 找到
/coinfig/api.php
修改auth
代码
'auth' => ['jwt' => function ($app) {return new \Dingo\Api\Auth\Provider\JWT($app['Tymon\JWTAuth\JWTAuth']);},
],
jwt-auth 和具体配置
- https://segmentfault.com/a/1190000012606246