Laravel

laravel 基于dingo+JWT的api接口验证

2018-12-18  本文已影响250人  偷偷路过

基于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

下面是对应控制器方法:

到此所有配置结束!

上一篇下一篇

猜你喜欢

热点阅读