ParagonIE\AntiCSRF\AntiCSRF::getTokenArray PHP Method

getTokenArray() public method

Retrieve a token array for unit testing endpoints
public getTokenArray ( string $lockTo = '' ) : array
$lockTo string
return array
    public function getTokenArray(string $lockTo = '') : array
    {
        if (!isset($this->session[$this->sessionIndex])) {
            $this->session[$this->sessionIndex] = [];
        }
        if (empty($lockTo)) {
            $lockTo = isset($this->server['REQUEST_URI']) ? $this->server['REQUEST_URI'] : '/';
        }
        if (\preg_match('#/$#', $lockTo)) {
            $lockTo = Binary::safeSubstr($lockTo, 0, Binary::safeStrlen($lockTo) - 1);
        }
        list($index, $token) = $this->generateToken($lockTo);
        if ($this->hmac_ip !== false) {
            // Use HMAC to only allow this particular IP to send this request
            $token = Base64::encode(\hash_hmac($this->hashAlgo, isset($this->server['REMOTE_ADDR']) ? $this->server['REMOTE_ADDR'] : '127.0.0.1', Base64::decode($token), true));
        }
        return [$this->formIndex => $index, $this->formToken => $token];
    }

Usage Example

Beispiel #1
0
 /**
  * @covers \Resonantcore\AntiCSRF\AntiCSRF::getTokenArray()
  */
 public function testGetTokenArray()
 {
     @session_start();
     $result = AntiCSRF::getTokenArray();
     $this->assertFalse(empty($_SESSION[AntiCSRF::SESSION_INDEX]));
     $this->assertSame([AntiCSRF::FORM_INDEX, AntiCSRF::FORM_TOKEN], array_keys($result));
 }
All Usage Examples Of ParagonIE\AntiCSRF\AntiCSRF::getTokenArray