little-apps/littlejwt

Generate and verify JSON Web Tokens (JWTs) simply in Laravel using Little JWT.

v1.3.0 2022-06-24 21:27 UTC

This package is auto-updated.

Last update: 2022-06-24 22:09:31 UTC


README

Imgur

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Coverage Status Total Downloads

Generate and verify JSON Web Tokens (JWTs) simply in Laravel using Little JWT. It's an alternative to Tymon's JWT Auth library and is designed to be more extensible.

Show Your Support

Little Apps relies on people like you to keep our software running. If you would like to show your support for Little Registry Cleaner, then you can make a donation using PayPal, Payza or credit card (via Stripe). Please note that any amount helps (even just $1).

Requirements

  • PHP v7.4 or higher
  • Laravel 7.x or 8.x

Installation

Install the package via composer:

composer require little-apps/littlejwt

Publish the config file with:

php artisan vendor:publish --tag="littlejwt-config"

Generate a secret phrase for building and validating JWTs:

php artisan littlejwt:phrase

Information on generating different types of keys can be found in the documentation.

Usage

Building JWTs

use LittleApps\LittleJWT\Facades\LittleJWT;
use LittleApps\LittleJWT\Build\Builder;

$token = LittleJWT::createToken(function (Builder $builder) {
    $builder
        // Adds claim 'abc' with value 'def' to header claims.
        ->abc('def', true)
        // Adds claim 'ghi' with value 'klm' to payload claims.
        ->ghi('klm')
        // Adds claim 'nop' with value 'qrs' to payload claims.
        ->nop('qrs', false);
});

// $token = "ey...";

Validating JWTs

use LittleApps\LittleJWT\Facades\LittleJWT;
use LittleApps\LittleJWT\Validation\Validator;

$token = "ey...";

$passes = LittleJWT::validateToken($token, function (Validator $validator) {
    $validator
        // Checks the value of the 'abc' claim in the header === (strictly equals) 'def'
        ->equals('abc', 'def', true, true)
        // Checks the value of the 'ghi' claim in the payload == (equals) 'klm'
        ->equals('ghi', 'klm')
        // Checks the value of the 'nop' claim in the payload === (strictly equals) 'qrs'
        ->equals('nop', 'qrs', true, false);
});

if ($passes) {
    // JWT is valid.
} else {
    // JWT is invalid.
}

Further Documentation

Further documentation is located at docs.getlittlejwt.com.

Testing

composer test

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security Vulnerabilities

Please review our security policy on how to report security vulnerabilities.

Credits

Libraries

Little JWT is built using the following libraries:

Contributors

Thank you to the following for their contributions:

License

The MIT License (MIT). Please see License File for more information.