ikechukwukalu / requirepin
一个用于在处理指定路由请求之前进行pin确认和验证的laravel包
v2.0.2
2024-06-18 11:11 UTC
Requires
- php: >=7.3
- doctrine/dbal: ^3.1|^4.0
- illuminate/auth: ^8.0|^9.0|^10.0|^11.0
- illuminate/broadcasting: ^8.0|^9.0|^10.0|^11.0
- illuminate/bus: ^8.0|^9.0|^10.0|^11.0
- illuminate/contracts: ^8.0|^9.0|^10.0|^11.0
- illuminate/database: ^8.0|^9.0|^10.0|^11.0
- illuminate/events: ^8.0|^9.0|^10.0|^11.0
- illuminate/http: ^8.0|^9.0|^10.0|^11.0
- illuminate/notifications: ^8.0|^9.0|^10.0|^11.0
- illuminate/queue: ^8.0|^9.0|^10.0|^11.0
- illuminate/routing: ^8.0|^9.0|^10.0|^11.0
- illuminate/support: ^8.0|^9.0|^10.0|^11.0
- illuminate/validation: ^8.0|^9.0|^10.0|^11.0
- illuminate/view: ^8.0|^9.0|^10.0|^11.0
- laravel/sanctum: ^2.8|^3.2|^4.0
- laravel/ui: ^3.1|^4.4
- predis/predis: ^2.0
- stevebauman/location: ^6.6|^7.0
- symfony/http-foundation: ^5.4|^6.0|^7.0
Requires (Dev)
- mockery/mockery: ^1.0|^2.0
- orchestra/testbench: ^6.0|^7.0|^8.0|^9.0
- php-parallel-lint/php-parallel-lint: dev-develop
- phpunit/phpunit: ^9.0|^10.0|^11.0
README
一个简单的Laravel包,它提供了一个中间件,该中间件将要求用户通过他们的pin进行身份验证来确认路由。
要求
- PHP 7.3+
- Laravel 8+
安装步骤
composer require ikechukwukalu/requirepin
php artisan vendor:publish --tag=rp-migrations
php artisan migrate
- 在您的
.env
文件中设置REDIS_CLIENT=predis
和QUEUE_CONNECTION=redis
。 php artisan queue:work
路由
API路由
- POST
api/change/pin
- POST
api/pin/required/{uuid}
Web路由
- POST
change/pin
- POST
pin/required/{uuid}
- GET
change/pin
- GET
pin/required/{uuid?}
注意
- 要接收JSON响应,请将
'Accept': 'application/json'
添加到您的头部。
工作原理
- 首先,就像吃糖果一样。
- 应该将
require.pin
中间件添加到路由或路由组中。 - 此中间件将拦截所有传入的请求。
- 为用户生成一个临时URL(
pin/required/{uuid}
),以便使用指定的输入config(requirepin.input)
通过他们的pin进行认证。 - 它要么返回一个包含生成URL的JSON响应,要么重定向到一个页面,在该页面上用户需要通过在一个将提交POST请求到生成URL的表单中输入他们的pin来验证请求。
- 在blade中显示返回的有效载荷
@if (session('return_payload')) @php [$status, $status_code, $data] = json_decode(session('return_payload'), true); @endphp <div class="alert alert-{!! $status === 'fail' ? 'danger' : 'success' !!} m-5 text-center"> {!! $data['message'] !!} </div> @endif
保留键值用于有效载荷
_uuid
_pin
expires
signature
return_payload
pin_validation
发布配置
php artisan vendor:publish --tag=rp-config
发布语言
php artisan vendor:publish --tag=rp-lang
发布视图
php artisan vendor:publish --tag=rp-views
许可证
RP包是一个开源软件,许可协议为MIT许可证。