ibra4/api-key

为可验证模型提供API密钥

0.0.9 2024-03-23 18:50 UTC

This package is auto-updated.

Last update: 2024-09-24 03:18:22 UTC


README

StandWithPalestineBadge

Laravel API Key Authentication Package

此Laravel包为您的Laravel应用程序提供了一种简单的API密钥认证机制。它允许您通过验证每个请求中发送的API密钥来保护API端点。

要求

  • PHP 7.3或更高版本

在Laravel ^8.75上测试

安装

您可以通过Composer安装此包

composer require ibra4/api-key

接下来,您应该发布包的配置文件

php artisan vendor:publish --tag=api_key

然后运行迁移

php artisan migrate

此命令将发布api_key.php配置文件到您的config目录。

配置

发布配置文件后,您可以在config/api_key.php中修改设置以符合您的应用程序需求。此文件允许您定义API密钥认证的各个方面,例如密钥长度、过期持续时间等。

用法

准备您的模型

  • 实现HasApiKeyInterface接口
  • 使用HasApiKey特质
    <?php 
    
    + use Ibra\ApiKey\Interfaces\HasApiKeyInterface;
    + use Ibra\ApiKey\Traits\HasApiKey;
    - class User extends Authenticatable {
    + class User extends Authenticatable implements HasApiKeyInterface {
    +    use HasApiKey;
    
    }

生成API密钥

要生成API密钥,您可以使用提供的artisan命令

php artisan api_key:generate ibra 1

此命令将生成一个新的API密钥并将其与ID为1的App\Models\User模型相关联。

参数

  • client_id:客户端名称
  • id:模型ID
  • model (可选):模型类名(默认:App\Models\User)
  • description (可选):描述

保护路由

要使用API密钥认证保护您的API路由,您可以使用此包提供的simple_api_key中间件。只需将此中间件应用到您想要保护的路由即可

Route::middleware('simple_api_key')->get('/api/resource', 'ResourceController@index');

此中间件将验证每个请求中发送的API密钥并验证相关用户。

停用API密钥

您可以使用提供的artisan命令停用API密钥

php artisan api-key:deactivate {client_id}

{client_id}替换为您想要停用的API密钥。

删除API密钥

要从系统中删除API密钥,您可以使用以下artisan命令

php artisan api-key:remove {client_id}

{client_id}替换为您想要删除的API密钥。

列出API密钥

您可以使用以下artisan命令列出数据库中存储的所有API密钥

php artisan api-key:list

此命令将显示所有API密钥及其关联用户和状态列表。

中间件逻辑

包含在此包中的ApiKeyMiddleware负责根据提供的API密钥验证API请求。它检查API密钥的有效性和状态,并在密钥有效且处于活动状态时登录关联用户。

贡献

欢迎贡献!如果您遇到任何问题或有改进建议,请随时在GitHub上打开问题或提交pull请求。

许可

此包是开源软件,许可协议为MIT许可

致谢

此包由Ibrahim Hammad开发和维护。

请随意添加任何其他部分或根据您的项目需求自定义内容。此README提供对包及其用法的概述。