Skip to content

hash verification using a nonce & verifying the hmac from the URL for a laravel application

License

Notifications You must be signed in to change notification settings

Dylan-DPC-zz/hash-verifier

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

hash-verifier

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

  1. Fork it!
  2. Create your feature branch: git checkout -b my-new-feature
  3. Commit your changes: git commit -am 'Add some feature'
  4. Push to the branch: git push origin my-new-feature
  5. Submit a pull request :D

Author

Dylan DPC

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:

License

This project is licensed under the MIT License - see the LICENSE file for details

About

hash verification using a nonce & verifying the hmac from the URL for a laravel application

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages