dpc / hash-verifier
Package for Nonce Generation & HMac Validation for authentication with APIs
Requires
- paragonie/sodium_compat: ^1.1
This package is not auto-updated.
Last update: 2024-12-29 09:01:43 UTC
README
hash verification using a nonce & verifying the hmac from the URL for a laravel application
Installation
composer require dpc/hash-verifier
The service provider will be automatically discovered in Laravel 5.5. Publish the config file by running:
php artisan vendor:publish --provider="Dpc\HashVerifier\AuthValidatorServiceProvider"
This will create a validator.php
in your config folder.
Do not use your secret directly in config file. Instead fetch it from the
.env
or server environment variables.
Usage
Inject the nonce generator contract and/or HMAC validator contract in your class:
public function __construct(NonceContract $generator) { $this->generator = $generator; }
To generate a nonce:
$nonce = $this->generator->generateNonce($user)
The nonce will be automatically stored in the session with key as `nonce'. To retrieve it call:
$nonce = $this->generator->getStoredNonce();
Ensure that you do not mutate the nonce.
To verify whether the nonce matches
$nonceMatches = $this->generator->matches($user, $nonce);
To validate if the hmac matches the components of the URL:
$result = $this->validator->validate($uriComponents));
You can check this repo for further details on how to use this package
Versioning
This package follows semver. Features introduced & any breaking changes created in major releases are mentioned in releases.
Contributing
- Fork it!
- Create your feature branch:
git checkout -b my-new-feature
- Commit your changes:
git commit -am 'Add some feature'
- Push to the branch:
git push origin my-new-feature
- Submit a pull request :D
Author
Versioning
This package follows semver. Features introduced & any breaking changes created in major releases are mentioned in releases.
Support
If you need help or have any questions you can:
- Create an issue here
- Send a tweet to @DPC_22
- Email me at dylan.dpc@gmail.com
- DM me on the larachat slack team (@Dylan DPC)
License
This project is licensed under the MIT License - see the LICENSE file for details