[
MAINHACK
]
Mail Test
BC
Config Scan
HOME
Create...
New File
New Folder
Viewing / Editing File: Payload.php
<?php /* * This file is part of jwt-auth. * * (c) 2014-2021 Sean Tymon <tymon148@gmail.com> * (c) 2021 PHP Open Source Saver * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace PHPOpenSourceSaver\JWTAuth; use ArrayAccess; use BadMethodCallException; use Countable; use Illuminate\Contracts\Support\Arrayable; use Illuminate\Contracts\Support\Jsonable; use Illuminate\Support\Arr; use Illuminate\Support\Str; use JsonSerializable; use PHPOpenSourceSaver\JWTAuth\Claims\Claim; use PHPOpenSourceSaver\JWTAuth\Claims\Collection; use PHPOpenSourceSaver\JWTAuth\Exceptions\PayloadException; use PHPOpenSourceSaver\JWTAuth\Validators\PayloadValidator; class Payload implements ArrayAccess, Arrayable, Countable, Jsonable, JsonSerializable { /** * The collection of claims. * * @var Collection */ private $claims; /** * Build the Payload. * * @param bool $refreshFlow * * @return void */ public function __construct(Collection $claims, PayloadValidator $validator, $refreshFlow = false) { $this->claims = $validator->setRefreshFlow($refreshFlow)->check($claims); } /** * Get the array of claim instances. * * @return Collection */ public function getClaims() { return $this->claims; } /** * Checks if a payload matches some expected values. * * @param bool $strict * * @return bool */ public function matches(array $values, $strict = false) { if (empty($values)) { return false; } $claims = $this->getClaims(); foreach ($values as $key => $value) { if (!$claims->has($key) || !$claims->get($key)->matches($value, $strict)) { return false; } } return true; } /** * Checks if a payload strictly matches some expected values. * * @return bool */ public function matchesStrict(array $values) { return $this->matches($values, true); } /** * Get the payload. * * @param mixed $claim * * @return mixed */ public function get($claim = null) { $claim = value($claim); if (null !== $claim) { if (is_array($claim)) { return array_map([$this, 'get'], $claim); } return Arr::get($this->toArray(), $claim); } return $this->toArray(); } /** * Get the underlying Claim instance. * * @param string $claim * * @return Claim */ public function getInternal($claim) { return $this->claims->getByClaimName($claim); } /** * Determine whether the payload has the claim (by instance). * * @return bool */ public function has(Claim $claim) { return $this->claims->has($claim->getName()); } /** * Determine whether the payload has the claim (by key). * * @param string $claim * * @return bool */ public function hasKey($claim) { return $this->offsetExists($claim); } /** * Get the array of claims. * * @return array */ public function toArray() { return $this->claims->toPlainArray(); } /** * Convert the object into something JSON serializable. * * @return array */ #[\ReturnTypeWillChange] public function jsonSerialize() { return $this->toArray(); } /** * Get the payload as JSON. * * @param int $options * * @return string */ public function toJson($options = JSON_UNESCAPED_SLASHES) { return json_encode($this->toArray(), $options); } /** * Get the payload as a string. * * @return string */ public function __toString() { return $this->toJson(); } /** * Determine if an item exists at an offset. * * @param mixed $key * * @return bool */ #[\ReturnTypeWillChange] public function offsetExists($key) { return Arr::has($this->toArray(), $key); } /** * Get an item at a given offset. * * @param mixed $key * * @return mixed */ #[\ReturnTypeWillChange] public function offsetGet($key) { return Arr::get($this->toArray(), $key); } /** * Don't allow changing the payload as it should be immutable. * * @param mixed $key * @param mixed $value * * @throws PayloadException */ #[\ReturnTypeWillChange] public function offsetSet($key, $value) { throw new PayloadException('The payload is immutable'); } /** * Don't allow changing the payload as it should be immutable. * * @param string $key * * @return void * * @throws PayloadException */ #[\ReturnTypeWillChange] public function offsetUnset($key) { throw new PayloadException('The payload is immutable'); } /** * Count the number of claims. * * @return int */ #[\ReturnTypeWillChange] public function count() { return count($this->toArray()); } /** * Invoke the Payload as a callable function. * * @param mixed $claim * * @return mixed */ public function __invoke($claim = null) { return $this->get($claim); } /** * Magically get a claim value. * * @param string $method * @param array $parameters * * @return mixed * * @throws BadMethodCallException */ public function __call($method, $parameters) { if (preg_match('/get(.+)\b/i', $method, $matches)) { foreach ($this->claims as $claim) { if (get_class($claim) === 'PHPOpenSourceSaver\\JWTAuth\\Claims\\'.$matches[1]) { return $claim->getValue(); } } } throw new BadMethodCallException(sprintf('The claim [%s] does not exist on the payload.', Str::after($method, 'get'))); } }
Save Changes
Cancel / Back
Close ×
Server Info
Hostname: server1.winmanyltd.com
Server IP: 203.161.60.52
PHP Version: 8.3.27
Server Software: Apache
System: Linux server1.winmanyltd.com 4.18.0-553.22.1.el8_10.x86_64 #1 SMP Tue Sep 24 05:16:59 EDT 2024 x86_64
HDD Total: 117.98 GB
HDD Free: 59.72 GB
Domains on IP: N/A (Requires external lookup)
System Features
Safe Mode:
Off
disable_functions:
None
allow_url_fopen:
On
allow_url_include:
Off
magic_quotes_gpc:
Off
register_globals:
Off
open_basedir:
None
cURL:
Enabled
ZipArchive:
Enabled
MySQLi:
Enabled
PDO:
Enabled
wget:
Yes
curl (cmd):
Yes
perl:
Yes
python:
Yes (py3)
gcc:
Yes
pkexec:
Yes
git:
Yes
User Info
Username: eliosofonline
User ID (UID): 1002
Group ID (GID): 1003
Script Owner UID: 1002
Current Dir Owner: 1002