kawaiiwaifus/laravel-api-kawaii-jwt

REST API。

v0.0.3 2017-11-22 15:01 UTC

This package is not auto-updated.

Last update: 2024-09-19 18:47:24 UTC


README

Kawaii-jwt

相关包

安装

  • 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/apitymondesigns/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。只需查看此页面的文档以获取更多信息。

测试

  • 即将推出..

致谢