介绍
dingo
dingo api
包是给
laravel
和
lumen
提供的
Restful
的工具包,它可以与
jwt组件一起配合快速的完成用户认证,同时对于数据和运行过程中所产生的异常能够捕获到并且可以做出对应的响应。
主要功能:
1. Router Version
路由版本管理
2. http Exception
异常处理
3. response transform
转化响应格式。
jwt
jwt全称
JSON Web Tokens ,
是一个非常轻巧的规范,这个规范允许我们使用
jwt
在用户和服务器之间传递安全
可靠的信息,他的主要使用场景为:认证与数据交换。
安装dingo
laravel安装及使用参考《laravel入门及技术指南》
https://blog.csdn.net/yan_dk/article/details/117375890
下载
dingo
扩展包的安装
# composer require dingo/api
配置环境配置文件env
发布 API
的配置文件到
config
文件下:
# php artisan vendor:publish --provider="Dingo\Api\Provider\LaravelServiceProvider"
[\vendor\dingo\api\config\api.php] To [\config\api.php]
建立控制器
# php artisan make:controller Api/V1/TestController
class TestController extends Controller
{
public function test(){
return "this is test";
}
}
建立路由文件 routes/api.php
$api = app('Dingo\Api\Routing\Router');
$api->version('v1',[
'middleware' => ['bindings'],
'namespace' => "App\Http\Controllers\Api\V1"
],function ($api){
$api->get("test","TestController@test")->name("test.test");
});
浏览器访问http://ip:port/api/test
原理通了,用dingo做restful风格的api路由,自行封装处理吧。
安装jwt
# composer require tymon/jwt-auth
发布
API
的配置文件到
config
文件下:
# php artisan vendor:publish --provider="Tymon\JWTAuth\Providers\LaravelServiceProvider"
在
.env
文件中生成
jwt
加密秘钥
# php artisan jwt:secret
env文件自动生成如下:
config/api.php配置jwt
'auth' => [
'jwt' => 'Dingo\Api\Auth\Provider\JWT',
],
config/auth.php配置jwt
红色部分改为jwt,就集成了jwt组件接口
注意:还有一个认证user对象也要修改
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\Models\User::class,
],
...
//上面这里默认'model' => App\User::class, 根据实际项目改成相应的User包路径。