ibra4 / api-key
为可验证模型提供API密钥
README
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提供对包及其用法的概述。