khsing / laravel-restapi
用Laravel快速设置RESTful API项目,邪恶一点!;-)
v5.5.1
2017-12-14 03:44 UTC
Requires
- hashids/hashids: ^2.0
- laravel/framework: 5.4.* || 5.5.*
- laravel/passport: ^3.0
Requires (Dev)
- mockery/mockery: ~0.9
- phpunit/phpunit: ~5.0
README
简介
此包使OAuth2.0客户端凭证能够分配用户。
特性
- 支持Hashids加密真实ID的客户端ID。
安装
- 需要此包
composer require khsing/laravel-restapi
- 修改
config/app.php
,添加以下行到providers
Khsing\Restapi\OAuth2ServiceProvider::class, Khsing\Restapi\RestapiServiceProvider::class,
-
执行
php artisan migrate
-
执行
php artisan vendor:publish
-
需要遵循laravel/passport设置
从Laravel 5.5 LTS开始,passport会指定路由注册,可以在app/Providers/AuthServiceProvider.php
中自定义
Passport::routes(function ($router) { $router->forAccessTokens(); $router->forTransientTokens(); });
配置
支持以下配置选项。
enable_hashids
,布尔值,true/falsehashids_salt
,hashids的盐,需要替换为您的。hashids_length
,hashids的长度hashids_alphabet
,hashids的字母表
使用方法
- 创建客户端应用ID和密钥。
php artisan passport:client
填写用户ID、客户端名称并获取客户端密钥。
- 修改
routes/api.php
Route::get('/user', function (Request $request) { return $request->user(); })->middleware('auth:api');
现在,访问/api/user
将获取用户信息。
顺便说一句,Postman是一款很棒的工具。最棒的部分是它是免费的。
与Dingo/api集成
- 安装dingo/api,
composer require dingo/api:2.0.0-alpha1
- 将dingo添加到
providers
,Dingo\Api\Provider\LaravelServiceProvider::class,
php artisan vendor:publish
- 修改
app/Http/Kernel.php
,添加以下行
protected $middlewareGroups = [ ... 'api:auth' => [ 'auth:api', 'api.auth', ], ]
- 修改
config/api.php
的认证部分
'auth' => [ 'restapi' => \Khsing\Restapi\DingoAuthServiceProvider::class, ]
- dingo/api的示例,在
routes/api.php
中具有相同的功能
$api = app('Dingo\Api\Routing\Router'); $api->version('v1', ['middleware' => 'api:auth'], function ($api) { $api->get('user', function (Request $request) { return $request->user(); }); });
许可证
此库遵循MIT许可证,请保留许可证文件。
联系方式
Guixing
- Twitter: https://twitter.com/khsing
- Email: khsing.cn__AT__.gmail.com