ikechukwukalu / requirepin
A laravel package for pin confirmation and validation before processing requests to a specified route
Installs: 5 976
Dependents: 1
Suggesters: 0
Security: 0
Stars: 236
Watchers: 5
Forks: 15
Open Issues: 1
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
A simple Laravel package that provides a middleware which will require users to confirm routes utilizing their pin for authentication.
REQUIREMENTS
- PHP 7.3+
- Laravel 8+
STEPS TO INSTALL
composer require ikechukwukalu/requirepin
php artisan vendor:publish --tag=rp-migrations
php artisan migrate
- Set
REDIS_CLIENT=predis
andQUEUE_CONNECTION=redis
within your.env
file. php artisan queue:work
ROUTES
Api routes
- POST
api/change/pin
- POST
api/pin/required/{uuid}
Web routes
- POST
change/pin
- POST
pin/required/{uuid}
- GET
change/pin
- GET
pin/required/{uuid?}
NOTE
- To receive json response add
'Accept': 'application/json'
to your headers.
HOW IT WORKS
- First, it's like eating candy.
- The
require.pin
middlware should be added to a route or route group. - This middleware will arrest all incoming requests.
- A temporary URL (
pin/required/{uuid}
) is generated for a user to authenticate with the specified inputconfig(requirepin.input)
using their pin. - It either returns a
JSON
response with the generated URL or it redirects to a page where a user is required to authenticate the request by entering their pin into a form that will send a POST request to the generated URL when submitted. - To display return payload within 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
Reserved keys for payload
_uuid
_pin
expires
signature
return_payload
pin_validation
PUBLISH CONFIG
php artisan vendor:publish --tag=rp-config
PUBLISH LANG
php artisan vendor:publish --tag=rp-lang
PUBLISH VIEWS
php artisan vendor:publish --tag=rp-views
LICENSE
The RP package is an open-sourced software licensed under the MIT license.