!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache. PHP/8.1.30 

uname -a: Linux server1.tuhinhossain.com 5.15.0-151-generic #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC
2025 x86_64
 

uid=1002(picotech) gid=1003(picotech) groups=1003(picotech),0(root)  

Safe-mode: OFF (not secure)

/home/picotech/domains/ecom1.picotech.app/public_html/vendor/php-open-source-saver/jwt-auth/src/   drwxr-xr-x
Free 28.68 GB of 117.98 GB (24.31%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     JWT.php (8.03 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?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 
BadMethodCallException;
use 
Illuminate\Http\Request;
use 
PHPOpenSourceSaver\JWTAuth\Contracts\JWTSubject;
use 
PHPOpenSourceSaver\JWTAuth\Exceptions\JWTException;
use 
PHPOpenSourceSaver\JWTAuth\Http\Parser\Parser;
use 
PHPOpenSourceSaver\JWTAuth\Support\CustomClaims;

class 
JWT
{
    use 
CustomClaims;

    
/**
     * The authentication manager.
     *
     * @var Manager
     */
    
protected $manager;

    
/**
     * The HTTP parser.
     *
     * @var Parser
     */
    
protected $parser;

    
/**
     * The token.
     *
     * @var Token|null
     */
    
protected $token;

    
/**
     * Lock the subject.
     *
     * @var bool
     */
    
protected $lockSubject true;

    
/**
     * JWT constructor.
     *
     * @return void
     */
    
public function __construct(Manager $managerParser $parser)
    {
        
$this->manager $manager;
        
$this->parser $parser;
    }

    
/**
     * Generate a token for a given subject.
     *
     * @return string
     */
    
public function fromSubject(JWTSubject $subject)
    {
        
$payload $this->makePayload($subject);

        return 
$this->manager->encode($payload)->get();
    }

    
/**
     * Alias to generate a token for a given user.
     *
     * @return string
     */
    
public function fromUser(JWTSubject $user)
    {
        return 
$this->fromSubject($user);
    }

    
/**
     * Refresh an expired token.
     *
     * @param bool $forceForever
     * @param bool $resetClaims
     *
     * @return string
     */
    
public function refresh($forceForever false$resetClaims false)
    {
        
$this->requireToken();

        return 
$this->manager->customClaims($this->getCustomClaims())
            ->
refresh($this->token$forceForever$resetClaims)
            ->
get();
    }

    
/**
     * Invalidate a token (add it to the blacklist).
     *
     * @param bool $forceForever
     *
     * @return $this
     */
    
public function invalidate($forceForever false)
    {
        
$this->requireToken();

        
$this->manager->invalidate($this->token$forceForever);

        return 
$this;
    }

    
/**
     * Alias to get the payload, and as a result checks that
     * the token is valid i.e. not expired or blacklisted.
     *
     * @return Payload
     *
     * @throws JWTException
     */
    
public function checkOrFail()
    {
        return 
$this->getPayload();
    }

    
/**
     * Check that the token is valid.
     *
     * @param bool $getPayload
     *
     * @return Payload|bool
     */
    
public function check($getPayload false)
    {
        try {
            
$payload $this->checkOrFail();
        } catch (
JWTException $e) {
            return 
false;
        }

        return 
$getPayload $payload true;
    }

    
/**
     * Get the token.
     *
     * @return Token|null
     */
    
public function getToken()
    {
        if (
null === $this->token) {
            try {
                
$this->parseToken();
            } catch (
JWTException $e) {
                
$this->token null;
            }
        }

        return 
$this->token;
    }

    
/**
     * Parse the token from the request.
     *
     * @return $this
     *
     * @throws JWTException
     */
    
public function parseToken()
    {
        if (!
$token $this->parser->parseToken()) {
            throw new 
JWTException('The token could not be parsed from the request');
        }

        return 
$this->setToken($token);
    }

    
/**
     * Get the raw Payload instance.
     *
     * @return Payload
     */
    
public function getPayload()
    {
        
$this->requireToken();

        return 
$this->manager->decode($this->token);
    }

    
/**
     * Alias for getPayload().
     *
     * @return Payload
     */
    
public function payload()
    {
        return 
$this->getPayload();
    }

    
/**
     * Convenience method to get a claim value.
     *
     * @param string $claim
     *
     * @return mixed
     */
    
public function getClaim($claim)
    {
        return 
$this->payload()->get($claim);
    }

    
/**
     * Create a Payload instance.
     *
     * @return Payload
     */
    
public function makePayload(JWTSubject $subject)
    {
        return 
$this->factory()->customClaims($this->getClaimsArray($subject))->make();
    }

    
/**
     * Build the claims array and return it.
     *
     * @return array
     */
    
protected function getClaimsArray(JWTSubject $subject)
    {
        return 
array_merge(
            
$this->getClaimsForSubject($subject),
            
$subject->getJWTCustomClaims(), // custom claims from JWTSubject method
            
$this->customClaims // custom claims from inline setter
        
);
    }

    
/**
     * Get the claims associated with a given subject.
     *
     * @return array
     */
    
protected function getClaimsForSubject(JWTSubject $subject)
    {
        return 
array_merge([
            
'sub' => $subject->getJWTIdentifier(),
        ], 
$this->lockSubject ? ['prv' => $this->hashSubjectModel($subject)] : []);
    }

    
/**
     * Hash the subject model and return it.
     *
     * @param string|object $model
     *
     * @return string
     */
    
protected function hashSubjectModel($model)
    {
        return 
sha1(is_object($model) ? get_class($model) : $model);
    }

    
/**
     * Check if the subject model matches the one saved in the token.
     *
     * @param string|object $model
     *
     * @return bool
     */
    
public function checkSubjectModel($model)
    {
        if ((
$prv $this->payload()->get('prv')) === null) {
            return 
true;
        }

        return 
$this->hashSubjectModel($model) === $prv;
    }

    
/**
     * Set the token.
     *
     * @param Token|string $token
     *
     * @return $this
     */
    
public function setToken($token)
    {
        
$this->token $token instanceof Token $token : new Token($token);

        return 
$this;
    }

    
/**
     * Unset the current token.
     *
     * @return $this
     */
    
public function unsetToken()
    {
        
$this->token null;

        return 
$this;
    }

    
/**
     * Ensure that a token is available.
     *
     * @return void
     *
     * @throws JWTException
     */
    
protected function requireToken()
    {
        if (!
$this->token) {
            throw new 
JWTException('A token is required');
        }
    }

    
/**
     * Set the request instance.
     *
     * @return $this
     */
    
public function setRequest(Request $request)
    {
        
$this->parser->setRequest($request);

        return 
$this;
    }

    
/**
     * Set whether the subject should be "locked".
     *
     * @param bool $lock
     *
     * @return $this
     */
    
public function lockSubject($lock)
    {
        
$this->lockSubject $lock;

        return 
$this;
    }

    
/**
     * Get the Manager instance.
     *
     * @return Manager
     */
    
public function manager()
    {
        return 
$this->manager;
    }

    
/**
     * Get the Parser instance.
     *
     * @return Parser
     */
    
public function parser()
    {
        return 
$this->parser;
    }

    
/**
     * Get the Payload Factory.
     *
     * @return Factory
     */
    
public function factory()
    {
        return 
$this->manager->getPayloadFactory();
    }

    
/**
     * Get the Blacklist.
     *
     * @return Blacklist
     */
    
public function blacklist()
    {
        return 
$this->manager->getBlacklist();
    }

    
/**
     * Magically call the JWT Manager.
     *
     * @param string $method
     * @param array  $parameters
     *
     * @return mixed
     *
     * @throws BadMethodCallException
     */
    
public function __call($method$parameters)
    {
        if (
method_exists($this->manager$method)) {
            return 
call_user_func_array([$this->manager$method], $parameters);
        }

        throw new 
BadMethodCallException("Method [$method] does not exist.");
    }
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

:: Make Dir ::
 
[ ok ]
:: Make File ::
 
[ ok ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0044 ]--