php-sys-auth

PHP外部系统授权签名验证库。这个SDK是一个用于外部系统授权签名验证的工具,它旨在帮助您确保来自外部系统的请求是合法和受信任的。

特性

支持外部系统请求的签名验证。 提供了简单而强大的 API,方便集成到您的 PHP 应用程序中。 帮助您保护您的应用程序免受未经授权的访问。

说明文档

安装

composer require "douyuxingchen/php-sys-auth"

更新

composer update "douyuxingchen/php-sys-auth" --ignore-platform-reqs

Laravel框架快速接入

步骤1:注册服务提供者

在 config/app.php 文件中的 providers 数组中注册你的服务提供者。

'providers' => [ // 其他服务提供者... DouyuxingchenPhpSysAuthConfigProvider::class, ],

步骤2:生成配置文件

运行以下命令生成配置文件

php artisan vendor:publish --provider="DouyuxingchenPhpSysAuthConfigProvider"

用户需要在每次更新包的时候都要覆盖资源,你可以使用 --force 标志。

步骤3:创建中间件

php artisan make:middleware SysAuthMiddleware

步骤4:注册中间件

app/Http/Kernel.php 文件的 $routeMiddleware 数组中,注册中间件:

protected $routeMiddleware = [ 'api.sys.auth' => AppHttpMiddlewareSysAuthMiddleware::class, ];

步骤5:中间件接入

public function handle($request, Closure $next) { $appKey = $request->header('AppKey'); $authToken = $request->header('Authorization'); if(!$appKey || !$authToken) { return response()->json(['message' => 'AppKey or Authorization not found'], 400); } try { (new AuthApi($appKey))->setToken($authToken)->verify(); } catch (ConfigException $e){ // TODO 配置文件错误 $code = $e->getCode(); $message = $e->getMessage(); return response()->json('Config error', 500); } catch (ErrCodeException $e) { // TODO 业务错误 $code = $e->getCode(); $message = $e->getMessage(); // 根据不同的错误信息,进行不同的业务处理 return response()->json(['message' => $message]); } catch (ValidationException|TokenInvalidException $e) { // TODO 签名认证失败 $code = $e->getCode(); $message = $e->getMessage(); // 签名验证失败,可以进行统一返回处理 return response()->json(['message' => 'Unauthorized'], 401); } return $next($request); }

步骤6:路由中接入中间件

路由组允许你共享路由属性,例如中间件,这样不需要在每个单独的路由上定义那些属性。

<?php Route::middleware('api.sys.auth')->group(function () { Route::get('/', function () { // 使用 api.sys.auth 中间件... }); Route::get('/user/profile', function () { // 使用 api.sys.auth 中间件... }); });

注意事项

AppKey和AppSecret生成

关于app_keysecret_key的申请,该SDK提供了生成方法,请请求如下方法生成

// 生成AppKey DouyuxingchenPhpSysAuthAuthAuthKey::genAppKey(); // 生成 AppSecret DouyuxingchenPhpSysAuthAuthAuthKey::genAppSecret();

Token生成

在开发阶段,需要进行Token生成进行测试,你可以使用以下代码进行Token生成

(new AuthApi('your_app_key'))->token('your_app_secret', ['exp'=>86400,'timestamp' => time()]);

App缓存清理

如果您对App应用进行了配置修改,例如:黑白名单、IP更改、限流更改、接口白名单。那么您通常需要调用flushCache方法进行缓存清理。

(new AuthApi('your_app_key'))->flushCache();

使用指南

请参阅我们的完整文档以了解如何使用此库等更多详细信息。

版权和许可

本项目基于 [GPL-3.0] 许可证。请查阅 LICENSE 文件以获取更多信息。

版权声明:

1、该文章(资料)来源于互联网公开信息,我方只是对该内容做点评,所分享的下载地址为原作者公开地址。
2、网站不提供资料下载,如需下载请到原作者页面进行下载。
3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考学习用!
4、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。