muhammadshakeel / laravel-api-boilerplate-oauth
Laravel 5 的 OAuth2 RESTful API 快速启动包。
Requires
- php: >=5.5.9
- dingo/api: 1.0.*@dev
- laravel/framework: 5.1.*
- lucadegasperi/oauth2-server-laravel: 5.0.*
- myclabs/php-enum: ^1.4
Requires (Dev)
- fzaninotto/faker: ~1.4
- mockery/mockery: 0.9.*
- phpspec/phpspec: ~2.1
- phpunit/phpunit: ~4.0
This package is not auto-updated.
Last update: 2024-09-14 19:25:29 UTC
README
基于 francescomalatesta/laravel-api-boilerplate-jwt
Laravel API Boilerplate 是一个即用型 "快速启动包",您可以用它快速构建您的第一个 API。正如您想象的那样,它建立在令人惊叹的 Laravel 框架之上。
它还受益于三个包
- OAuth2 - lucadegasperi/oauth2-server-laravel
- Dingo API - dingo/api
有了相似的基础,真的可以在极短的时间内启动。我只是做了一个“集成”,在这里和那里添加了一些我认为有用的东西。
安装
- composer create-project muhammadshakeel/laravel-api-boilerplate-oauth your-project
- cd your-project
- php -r "copy('.env.example', '.env');"
- php artisan key:generate
- chmod -R 777 storage/ bootstrap/cache/
- php artisan vendor:publish
- php artisan migrate
- php artisan db:seed --class=ClientTableSeeder
完成!
主要功能
即用型 AuthController
我已经在 App\Api\V1\Controllers 中放置了一个 "AuthController"。它支持四种基本的认证/密码恢复操作
- login();
- signup();
- recovery();
- reset();
为了使用它们,您只需要发送一个包含所需数据的 POST 请求。
您需要
- 登录:只需邮箱和密码;
- 注册:您喜欢什么都可以:您可以在配置文件中指定它;
- 恢复:只需用户电子邮件地址;
- 重置:令牌、电子邮件、密码和密码确认;
独立的路由文件
您可以在 *api_routes.php_ 文件中指定您的路由,它将被自动加载。在这个文件中,您将找到许多路由的示例。
配置
正如我之前已经提到的,这个模板是基于 dingo/api 和 lucadegasperi/oauth2-server-laravel 包。因此,您可以在 这里 和 这里 找到许多关于配置的信息。
然而,我在一个 config/boilerplate.php 文件中放置了一些额外的选项。
- signup_fields:您可以使用此选项来指定您想要用于创建用户的字段;
- signup_fields_rules:您可以使用此选项来指定您希望在注册方法中使用的验证器实例的规则;
- signup_token_release:如果为 "true",则当一切顺利时,注册端点将发布访问令牌。否则,您将仅收到一个 201 Created 响应;
- reset_token_release:如果为 "true",则当一切顺利时,注册端点将发布访问令牌。否则,您将仅收到一个 200 响应;
- recovery_email_subject:在这里,您可以指定恢复数据电子邮件的主题;
创建端点
您可以使用与使用单个 dingo/api 包相同的方式创建端点。您可以 在此处阅读其文档 以获取详细信息。
毕竟,这只是一个模板! :)
备注
我目前从 app/Http/Kernel.php 文件中的 $middleware 数组中移除了 VerifyCsrfToken 中间件。如果你想在项目中使用它,只需使用相同的类中 $routeMiddleware 数组中可找到的 csrf 路由中间件。
反馈
我目前是个人用途创建了这个项目。我决定在这里分享它,以帮助有相同需求的人。如果你有任何改进意见,请随时提出建议或发起一个PR!