laravel 基于dingo+JWT的api接口验证
基于dingo+jwt-auth;
laravel5.1-5.7皆可通用;
使用越新的版本则需要切换PHP版本作为支持。
参考文档地址
社区:https://laravel-china.org/docs/dingo-api/2.0.0
CSDN:https://blog.csdn.net/qq_28666081/article/details/52188549
第一步:安装配置dingo/api
添加:"dingo/api": "^2.0.0-alpha2",执行composer update
在config/app.php,providers数组中添加:
Dingo\Api\Provider\LaravelServiceProvider::class,
生成配置文件:
php artisan vendor:publish --provider="Dingo\Api\Provider\LaravelServiceProvider"
在.env中增加配置
API_STANDARDS_TREE=vnd
API_PREFIX=api
API_VERSION=v1
API_DEBUG=true
说明:
API_STANDARDS_TREE - API规格 ①x 本地或私有环境 ②prs非商业销售的项目 ③vnd 公开的以及商业销售的项目
第二步:安装配置jwt-auth
添加 "tymon/jwt-auth":"0.5.*" 。执行composer update
在config/app.php,providers数组中添加:
'Tymon\JWTAuth\Providers\JWTAuthServiceProvider'
对应的aliases添加
'JWTAuth'=>'Tymon\JWTAuth\Facades\JWTAuth'
'JWTFactory'=>'Tymon\JWTAuth\Facades\JWTFactory'
生成配置文件:
php artisan vendor:publish --provider="Tymon\JWTAuth\Providers\JWTAuthServiceProvider"
生成jwt-key:php artisan jwt:generate
最后关联dingo与JWT 修改config/api.php的auth如下:
配置:jwt.php
接下来是路由:直接拿参考文档得截图:中间件部分的"account.change"是用来指定具体模型的。如果验证的模型和jwt.php中user不一致则在里面修改。修改代码一并附上如下:
中间件:
这里就看具体的项目需要了。可要可不要!
然后去Kernel.php 注册中间件
处理跨域的问题:对应中间件api_start
下面是对应控制器方法:
到此所有配置结束!