Laravel 5集成API开发(Dingo Api + JWT)


Laravel使用JWT实现API认证

如今web application都是前后端分离,采用API进行交互。


安装

在 composer.json里面加入

"require": {
    "php": ">=5.5.9",
    "laravel/framework": "5.2.*",
    "dingo/api": "1.0.*@dev"
    },

接着我们composer update

配置

安装完之后需要在config目录app.php文件中添加以下配置信息:

 Dingo\Api\Provider\LaravelServiceProvider::class
 Tymon\JWTAuth\Providers\JWTAuthServiceProvider::class
 
 
‘JWTAuth’ => Tymon\JWTAuth\Facades\JWTAuth::class
‘JWTFactory’ => Tymon\JWTAuth\Facades\JWTFactory::class

填写配置信息后运行以下命令会在config目录中生成api.php和jwt.php配置文件


php artisan vendor:publish –provider=”Dingo\Api\Provider\LaravelServiceProvider”

php artisan vendor:publish –provider=”Tymon\JWTAuth\Providers\JWTAuthServiceProvider”


我们可以在.env或刚才生成的api.php文件中添加或修改如下选项

API_SUBTYPE 你接口项目的名字,我随便设成dingo,注意,值需要全部小写

API_SUBTYPE=dingo

对于一个接口地址可以是www.homestead.app/api 这种二级目录的形式

API_PREFIX=api

也可以是二级域名api.homestead.app的形式,二选一

API_DOMAIN=api.homestead.com

接着是api版本号,才开始都是v1

API_VERSION=v1

API_NAME 主要是为了dingo自带的blueprint生存api文档时的标题用的,可以不设置,如果设置一定加双引号

API_NAME="My Dingo Demo"

严格模式开启后,顾名思义严格检验http header,如果无效则抛出ymfony\Component\HttpKernel\Exception\BadRequestHttpException异常,这个异常需要你自己去handle

API_STRICT=false

默认传输格式json

API_DEFAULT_FORMAT=json

debug模式,开发时暂时设为true

API_DEBUG=true

至此基本配置已经完成.


创建API节点

$api = app('Dingo\Api\Routing\Router');$api->version('v1', function ($api) {
    $api->get('/hello/', function () {
        return "hello";
    });});



本文 暂无 评论

Top