francis94c/ci-jwt

View on GitHub
helpers/base64_helper.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php
defined('BASEPATH') OR exit('No direct script access allowed');

if (!function_exists('base64url_encode')) {
  /**
   * [base64url_encode base64 url encode data.]
   *
   * @param  string       $data Data to encode
   *
   * @return string|bool       Encoded Data. False, if data couldn't be encoded.
   */
  function base64url_encode(string $data) {
    $b64 = base64_encode($data);
    if ($b64 === false) return false;
    $url = strtr($b64, '+/', '-_');
    return rtrim($url, '=');
  }
}

if (!function_exists('base64url_decode')) {
  /**
   * [base64url_decode decode base64 url encoded data.]
   *
   * @param  string      $data   Data to decode.
   *
   * @param  boolean     $strict Strinct flag.
   *
   * @return string|bool          Decoded String.
   */
  function base64url_decode(string $data, bool $strict=false) {
    $b64 = strtr($data, '-_', '+/');
    return base64_decode($b64, $strict);
  }
}