kawaiiwaifus / laravel-api-kawaii-jwt
REST API。
Requires
- php: >=7.0.0
- barryvdh/laravel-cors: ^0.9.3
- dingo/api: 2.0.0-alpha1
- laravel/framework: ^5.5.20
- santigarcor/laratrust: 5.0.*
- tymon/jwt-auth: dev-develop
Requires (Dev)
- fzaninotto/faker: ~1.4
- mockery/mockery: 0.9.*
- phpunit/phpunit: ~6.0
- symfony/css-selector: 3.1.*
- symfony/dom-crawler: 3.1.*
- xethron/migrations-generator: ^2.0
This package is not auto-updated.
Last update: 2024-09-19 18:47:24 UTC
README
- Kawaii-jwt 是 Quasar 模板 - BoilerPlate 的 API
相关包
- JWT-Auth - tymondesigns/jwt-auth
- Dingo API - dingo/api
- Laravel-CORS barryvdh/laravel-cors
- Laratrust Laratrust
安装
- composer create-project kawaiiwaifus/laravel-api-kawaii-jwt NameOfProject
使用
- 运行
php artisan migrate
- 运行
php atisan jwt:secret
- 运行
php artisan db:seed
(可选) 用于创建测试用户。
主要特性
即用型认证控制器
您再也不必担心认证和密码恢复。我在 App\Api\V1\Controllers
中创建了四个控制器,以供这些操作使用。
每个控制器在 routes/api.php
文件中都有已设置的路线
POST api/auth/login
,用于登录并获取访问令牌;POST api/auth/refresh
,通过获取新的访问令牌来刷新现有的访问令牌;POST api/auth/register
,在您的应用程序中创建新用户;POST api/auth/recovery
,恢复您的凭据;POST api/auth/reset
,在恢复后重置您的密码;POST api/auth/logout
,通过使传递的令牌无效来注销用户;GET api/auth/me
,获取当前用户数据;
路由 ADM 用户
GET api/admin/users
,获取所有用户GET api/admin/users/{id}
,获取要编辑的用户PUT api/admin/users/{id}
,更新用户POST api/admin/users
,"创建用户" 我认为还没有完成。DELETE api/admin/users/{id}
,"删除用户" 我认为还没有完成。
--
路由角色和权限
-
GET api/admin/roles
,获取所有角色 -
GET api/admin/roles/{id}
,获取要编辑的角色 -
PUT api/admin/roles/{id}
,更新角色 -
POST api/admin/roles
,创建角色 -
DELETE api/admin/roles/{id}
,删除角色 -
GET api/admin/permissions
,获取所有权限 -
GET api/admin/permissions/{id}
,获取要编辑的权限 -
PUT api/admin/permissions/{id}
,更新权限 -
POST api/admin/permissions
,创建权限 -
DELETE api/admin/permissions/{id}
,删除权限
单独的文件用于路由
所有 API 路由都可以在 routes/api.php
文件中找到。这也遵循 Laravel 5.5。
生成密钥
每次您从这个仓库创建新项目时,都会执行 php artisan jwt:generate 命令。
配置
数据库示例
DROP TABLE IF EXISTS `users`; CREATE TABLE IF NOT EXISTS `users` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(120) COLLATE utf8_unicode_ci NOT NULL, `email` varchar(120) COLLATE utf8_unicode_ci NOT NULL, `password` varchar(125) COLLATE utf8_unicode_ci NOT NULL, `remember_token` varchar(200) COLLATE utf8_unicode_ci DEFAULT NULL, `telephone` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL, `active` int(1) NOT NULL DEFAULT '0', `gender` varchar(25) COLLATE utf8_unicode_ci DEFAULT NULL, `address` varchar(190) COLLATE utf8_unicode_ci DEFAULT NULL, `amount` varchar(75) COLLATE utf8_unicode_ci DEFAULT NULL, `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP, `updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`), UNIQUE KEY `users_email_unique` (`email`) ) ENGINE=InnoDB AUTO_INCREMENT=325 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
您可以在 config/kawaii-jwt.php
配置文件中找到所有 Kawaii-jwt 特定的设置。
<?php return [ // these options are related to the sign-up procedure 'sign_up' => [ // this option must be set to true if you want to release a token // when your user successfully terminates the sign-in procedure 'release_token' => env('SIGN_UP_RELEASE_TOKEN', false), // here you can specify some validation rules for your sign-in request 'validation_rules' => [ 'name' => 'required', 'email' => 'required|email', 'password' => 'required' ] ], // these options are related to the login procedure 'login' => [ // here you can specify some validation rules for your login request 'validation_rules' => [ 'email' => 'required|email', 'password' => 'required' ] ], // these options are related to the password recovery procedure 'forgot_password' => [ // here you can specify some validation rules for your password recovery procedure 'validation_rules' => [ 'email' => 'required|email' ] ], // these options are related to the password recovery procedure 'reset_password' => [ // this option must be set to true if you want to release a token // when your user successfully terminates the password reset procedure 'release_token' => env('PASSWORD_RESET_RELEASE_TOKEN', false), // here you can specify some validation rules for your password recovery procedure 'validation_rules' => [ 'token' => 'required', 'email' => 'required|email', 'password' => 'required|confirmed' ] ] ];
正如我之前所说,这个 Kawaii-jwt 是基于 dingo/api 和 tymondesigns/jwt-auth 包的。因此,您可以在 这里 和 这里 找到有关配置的许多信息。
然而,我在 config/kawaii-jwt.php 文件中添加了一些额外的选项。
sign_up.release_token
:如果您想在注册流程后立即释放令牌,请将其设置为true
。reset_password.release_token
:如果您想在密码重置流程后立即释放令牌,请将其设置为true
。
每个操作(登录、注册、恢复和重置)都有验证规则。您可以根据需要自定义它们。
创建端点
您可以通过与使用单个dingo/api包相同的方式创建端点。您可以在此处查看其文档以获取详细信息。毕竟,那只是一个模板! :)
但是,我在routes/api.php
文件中添加了一些示例路由,以便您立即获得一些灵感。
跨源资源共享
如果您想为特定路由或路由组启用CORS,只需在这些路由上使用cors中间件即可。
多亏了barryvdh/laravel-cors包,您可以轻松处理CORS。只需查看此页面的文档以获取更多信息。
测试
- 即将推出..
致谢
- 我从这个项目中得到了灵感,并对其进行了修改以使其工作。
- laravel-api-boilerplate-jwt