dusta / jwt-ready
Module jwt
v1.0.0
2019-02-02 17:35 UTC
Requires
- ext-openssl: *
- firebase/php-jwt: ^5.0
This package is auto-updated.
Last update: 2024-11-17 18:58:54 UTC
README
Simple Firebase\JWT wrapper
PHP Standalone
use Dusta\JWTReady\JWTReady; require_once __DIR__ . '/../vendor/autoload.php'; $JWTReady = new JWTReady(['key' => 'YOUR-SECRET-KEY']); // Return string $jwt = $JWTReady->generate(['key' => 'value']); // return eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJrZXkiOm51bGwsImlhdCI6bnVsbC..... // if empty check headers Bearer/s $check = $JWTReady->checkJWT($jwt); // return ['jwt' => 'eyJ0eXAiOiJKV1QiLCJhbG....', 'payload' => [...]] $decoded = $JWTReady->decode($jwt); // return ['key' => 'value']
Example SilmFramework
src/routers.php
use Slim\Http\Request; use Slim\Http\Response; $app->get('/auth/check', function (Request $request, Response $response, array $args) { try { /** @var JWTReady $JWTReady */ $JWTReady = $this->get('JWTReady'); $checkJWT = $JWTReady->checkJWT(); } catch (AuthorizationHeaderException $e) { return $response->withJson(['code' => 401, 'message' => 'Invalid BearerToken']); } return $response->withJson(['code' => 200])->withHeader('Bearer', $checkJWT->get('jwt')); });
src/dependencies.php
use Dusta\JWTReady\JWTReady; $container = $app->getContainer(); // monolog $container['JWTReady'] = function ($c) { $settings = $c->get('settings')['JWTReady']; $JWTReady = new JWTReady($settings); return $JWTReady; };
src/settings.php
<?php return [ 'settings' => [ 'displayErrorDetails' => true, // set to false in production 'addContentLengthHeader' => false, // Allow the web server to send the content-length header 'JWTReady' => [ 'key' => 'SecretKey', 'iat' => null, 'jti' => null, 'iss' => null, 'nbf' => null, 'exp' => null, 'data' => null ] ], ];