PHP code example of yymou / easyjwt

1. Go to this page and download the library: Download yymou/easyjwt library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

yymou / easyjwt example snippets




    $token = (new EasyJwt\Jwt())->setPayload($payload)->getToken();

    (new EasyJwt\Jwt())->explainToken($token)->getPayload();

          $token = $jwtObj->setAlgorithm("HS256")->setPayload($payload)->getToken();
       

          $token = (new EasyJwt\Jwt("HS256"))->setPayload($payload)->getToken();
      

         $token = $jwtObj->setKey("你的私钥")->setPayload($payload)->getToken();
      

      $token = $jwtObj->setExp(86400*7)->setPayload($payload)->getToken();
   

    $jwtObj->explainToken($token)->getPayload();
   



namespace App\Business\Service;

use EasyJwt\Jwt;

/**
 * 通行相关逻辑
 */
class AccessService extends BaseService
{
    public $errorMsg = '';

    private $jwtModel;

    const JWT_EXPIRE_TIME = 86400 * 15;

    function __construct()
    {
        parent::__construct();
        $this->jwtModel = new Jwt();
    }

    /**
     * 验证bearer token
     * @return bool|array
     */
    public function verifyBearerToken()
    {
        $token = $this->getBearerToken();
        if (empty($token)) {
            return false;
        }

        return $this->jwtModel->explainToken($token)->getPayload();
    }

    /**
     * Get header Authorization
     * */
    public function getAuthorizationHeader()
    {
        $headers = null;

        if (isset($_SERVER['Authorization'])) {
            $headers = trim($_SERVER["Authorization"]);
        } else if (isset($_SERVER['HTTP_AUTHORIZATION'])) {
            $headers = trim($_SERVER["HTTP_AUTHORIZATION"]);
        } elseif (function_exists('apache_request_headers')) {
            $requestHeaders = apache_request_headers();
            $requestHeaders = array_combine(array_map('ucwords', array_keys($requestHeaders)), array_values($requestHeaders));
            if (isset($requestHeaders['Authorization'])) {
                $headers = trim($requestHeaders['Authorization']);
            }
        }
        return $headers;
    }

    /**
     * get access token from header
     * */
    public function getBearerToken() {
        $headers = $this->getAuthorizationHeader();
        if (!empty($headers)) {
            if (preg_match('/Bearer\s(\S+)/', $headers, $matches)) {
                return $matches[1];
            }
        }
        return null;
    }

    //刷新token
    public function refreshToken(array $payload) : string
    {
        if (!empty($payload)) {
            return $this->jwtModel->setExp(self::JWT_EXPIRE_TIME)->setPayload($payload)->getToken();
        }
        return '';
    }
}