jundayw/passport

A lightweight and scalable PHP API request verification and response signature extension package.

Maintainers

Package info

github.com/jundayw/laravel-passport

pkg:composer/jundayw/passport

Statistics

Installs: 9

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v2.0.0 2026-03-23 11:42 UTC

This package is auto-updated.

Last update: 2026-03-23 11:43:47 UTC


README

Laravel Passport

A lightweight and scalable PHP API request verification and response signature extension package.

GitHub Tag Total Downloads Packagist Version Packagist PHP Version Support Packagist License

Table of Contents
  1. Installation
  2. Usage
  3. Contributing
  4. Contributors
  5. License

Installation

You can install the package via Composer:

composer require jundayw/passport

Publish Resources

Your users can also publish all publishable files defined by your package's service provider using the --provider flag:

php artisan vendor:publish --provider="Jundayw\Passport\PassportServiceProvider"

You may wish to publish only the configuration files:

php artisan vendor:publish --tag=passport-config

You may wish to publish only the migration files:

php artisan vendor:publish --tag=passport-migrations

Run Migrations

php artisan migrate --path=database/migrations/2026_03_01_000000_create_passport_table.php

[back to top]

Usage

Passport

$appId     = '202603161735';
$appSecret = '2f7b50c39cb5f4cf061b0ea433634287';

Verification

use Jundayw\Passport\Facades\Passport;

$passport = Passport::payload(['foo' => 'bar']);

// $passport->payload($request->header());
// $passport->payload($request->query());
// $passport->payload($request->post());
$passport->payload(['signature' => '51864429c137b125833e8969649e8371a97b61af875ddd09366676e7df236966']);

$passport->check($appId, 'sha256', 'signature', 'hash_hmac'); // true

Signature

use Jundayw\Passport\Facades\Passport;

$passport = Passport::payload(['foo' => 'bar']);

// $passport->payload(['signature' => null]);

$passport->signature($appId, 'sha256', 'signature', 'hash_hmac'); // 51864429c137b125833e8969649e8371a97b61af875ddd09366676e7df236966
$passport->withSignature($appId, 'sha256', 'signature', 'hash_hmac')->getPayload();
// [
//     'foo'       => 'bar',
//     'signature' => '51864429c137b125833e8969649e8371a97b61af875ddd09366676e7df236966',
// ];

Extended custom signature

use Jundayw\Passport\Contracts\Signer;
use Jundayw\Passport\Facades\Passport;

Passport::extend('AES', function () {
    return new class implements Signer {
        public function sign(string $algo, array $data, string $secret): string
        {
            // TODO: Implement sign() method.
        }

        public function verify(string $algo, array $data, string $sign, string $secret): bool
        {
            // TODO: Implement verify() method.
        }
    };
});

$passport = Passport::payload($request->post());
$passport->check($appId, 'AES-256-CBC', 'signature', 'AES'); // bool

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

[back to top]

Contributors

Thanks goes to these wonderful people:

contrib.rocks image

Contributions of any kind are welcome!

[back to top]

License

Distributed under the MIT License (MIT). Please see License File for more information.

[back to top]