Bitrix API

JWT

JSON Web Token implementation, based on this spec: https://tools.ietf.org/html/rfc7519

PHP version 5

Tags
category

Authentication

author

Neuman Vong neuman@twilio.com

author

Anant Narayanan anant@php.net

license

http://opensource.org/licenses/BSD-3-Clause 3-clause BSD

link
https://github.com/firebase/php-jwt

Table of Contents

Constants

ASN1_BIT_STRING  = 0x3
ASN1_INTEGER  = 0x2
ASN1_SEQUENCE  = 0x10

Properties

$leeway  : mixed
When checking nbf, iat or expiration times, we want to provide some extra leeway time to account for clock skew.
$supported_algs  : mixed
$timestamp  : mixed
Allow the current timestamp to be specified.

Methods

decode()  : object
Decodes a JWT string into a PHP object.
encode()  : string
Converts and signs a PHP object or array into a JWT string.
jsonDecode()  : object
Decode a JSON string into a PHP object.
jsonEncode()  : string
Encode a PHP object into a JSON string.
sign()  : string
Sign a string with a given key and algorithm.
urlsafeB64Decode()  : string
Decode a string with URL-safe Base64.
urlsafeB64Encode()  : string
Encode a string with URL-safe Base64.

Constants

ASN1_BIT_STRING

public mixed ASN1_BIT_STRING = 0x3

ASN1_INTEGER

public mixed ASN1_INTEGER = 0x2

ASN1_SEQUENCE

public mixed ASN1_SEQUENCE = 0x10

Properties

$leeway

When checking nbf, iat or expiration times, we want to provide some extra leeway time to account for clock skew.

public static mixed $leeway = 0

$supported_algs

public static mixed $supported_algs = array('ES256' => array('openssl', 'SHA256'), 'HS256' => array('hash_hmac', 'SHA256'), 'HS384' => array('hash_hmac', 'SHA384'), 'HS512' => array('hash_hmac', 'SHA512'), 'RS256' => array('openssl', 'SHA256'), 'RS384' => array('openssl', 'SHA384'), 'RS512' => array('openssl', 'SHA512'))

$timestamp

Allow the current timestamp to be specified.

public static mixed $timestamp = null

Useful for fixing a value within unit testing.

Will default to PHP time() value if null.

Methods

decode()

Decodes a JWT string into a PHP object.

public static decode(string $jwt, string|array<string|int, mixed>|resource $key[, array<string|int, mixed> $allowed_algs = array() ]) : object
Parameters
$jwt : string

The JWT

$key : string|array<string|int, mixed>|resource

The key, or map of keys. If the algorithm used is asymmetric, this is the public key

$allowed_algs : array<string|int, mixed> = array()

List of supported verification algorithms Supported algorithms are 'ES256', 'HS256', 'HS384', 'HS512', 'RS256', 'RS384', and 'RS512'

Tags
throws
UnexpectedValueException

Provided JWT was invalid

uses
jsonDecode
uses
urlsafeB64Decode
Return values
object —

The JWT's payload as a PHP object

encode()

Converts and signs a PHP object or array into a JWT string.

public static encode(object|array<string|int, mixed> $payload, string $key[, string $alg = 'HS256' ][, mixed $keyId = null ][, array<string|int, mixed> $head = null ]) : string
Parameters
$payload : object|array<string|int, mixed>

PHP object or array

$key : string

The secret key. If the algorithm used is asymmetric, this is the private key

$alg : string = 'HS256'

The signing algorithm. Supported algorithms are 'ES256', 'HS256', 'HS384', 'HS512', 'RS256', 'RS384', and 'RS512'

$keyId : mixed = null
$head : array<string|int, mixed> = null

An array with header elements to attach

Tags
uses
jsonEncode
uses
urlsafeB64Encode
Return values
string —

A signed JWT

jsonDecode()

Decode a JSON string into a PHP object.

public static jsonDecode(string $input) : object
Parameters
$input : string

JSON string

Tags
throws
DomainException

Provided string was invalid JSON

Return values
object —

Object representation of JSON string

jsonEncode()

Encode a PHP object into a JSON string.

public static jsonEncode(object|array<string|int, mixed> $input) : string
Parameters
$input : object|array<string|int, mixed>

A PHP object or array

Tags
throws
DomainException

Provided object could not be encoded to valid JSON

Return values
string —

JSON representation of the PHP object or array

sign()

Sign a string with a given key and algorithm.

public static sign(string $msg, string|resource $key[, string $alg = 'HS256' ]) : string
Parameters
$msg : string

The message to sign

$key : string|resource

The secret key

$alg : string = 'HS256'

The signing algorithm. Supported algorithms are 'ES256', 'HS256', 'HS384', 'HS512', 'RS256', 'RS384', and 'RS512'

Tags
throws
DomainException

Unsupported algorithm was specified

Return values
string —

An encrypted message

urlsafeB64Decode()

Decode a string with URL-safe Base64.

public static urlsafeB64Decode(string $input) : string
Parameters
$input : string

A Base64 encoded string

Return values
string —

A decoded string

urlsafeB64Encode()

Encode a string with URL-safe Base64.

public static urlsafeB64Encode(string $input) : string
Parameters
$input : string

The string you want encoded

Return values
string —

The base64 encode of what you passed in


        
On this page

Search results