JFIF  x x C         C     "        } !1AQa "q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz        w !1AQ aq"2B #3Rbr{ gilour
<?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\Http\Parser; use Illuminate\Http\Request; class Parser { /** * The chain. * * @var array */ private $chain; /** * The request. * * @var \Illuminate\Http\Request */ protected $request; /** * Constructor. * * @param \Illuminate\Http\Request $request * @param array $chain * @return void */ public function __construct(Request $request, array $chain = []) { $this->request = $request; $this->chain = $chain; } /** * Get the parser chain. * * @return array */ public function getChain() { return $this->chain; } /** * Add a new parser to the chain. * * @param array|\Tymon\JWTAuth\Contracts\Http\Parser $parsers * @return $this */ public function addParser($parsers) { $this->chain = array_merge($this->chain, is_array($parsers) ? $parsers : [$parsers]); return $this; } /** * Set the order of the parser chain. * * @param array $chain * @return $this */ public function setChain(array $chain) { $this->chain = $chain; return $this; } /** * Alias for setting the order of the chain. * * @param array $chain * @return $this */ public function setChainOrder(array $chain) { return $this->setChain($chain); } /** * Iterate through the parsers and attempt to retrieve * a value, otherwise return null. * * @return string|null */ public function parseToken() { foreach ($this->chain as $parser) { if ($response = $parser->parse($this->request)) { return $response; } } } /** * Check whether a token exists in the chain. * * @return bool */ public function hasToken() { return $this->parseToken() !== null; } /** * Set the request instance. * * @param \Illuminate\Http\Request $request * @return $this */ public function setRequest(Request $request) { $this->request = $request; return $this; } }