Example #1
0
 /**
  * Parses an array of claims and returns an instance of the class Jwt.
  * @param array $payload An array of claims.
  * @return Jwt Instance of the class Jwt.
  */
 public static function parseFromArray(array $payload)
 {
     $instance = new self();
     !isset($payload['iss']) ?: ($instance->issuer = utf8_encode($payload['iss']));
     !isset($payload['iat']) ?: ($instance->issuedAt = (int) $payload['iat']);
     !isset($payload['nbf']) ?: ($instance->notBefore = (int) $payload['nbf']);
     !isset($payload['exp']) ?: ($instance->expires = (int) $payload['exp']);
     !isset($payload['sub']) ?: ($instance->subject = utf8_encode($payload['sub']));
     !isset($payload['aud']) ?: ($instance->audience = utf8_encode($payload['aud']));
     $customClaims = array_diff(array_keys($payload), self::getRegisteredClaimNames());
     foreach ($customClaims as $claim) {
         $instance->customClaims[$claim] = $payload[$claim];
     }
     if (isset($payload['jti'])) {
         $instance->jwtId = $payload['jti'] === true ? $instance->createJwtId() : $payload['jti'];
     }
     return $instance;
 }