This repository has been archived on 2023-08-20. You can view files and clone it, but cannot push or open issues or pull requests.
indieauth/docs/classes/Taproot-IndieAuth-Middleware-DoubleSubmitCookieCsrfMiddleware.html

795 lines
41 KiB
HTML
Raw Normal View History

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Documentation</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<base href="../">
<link rel="icon" href="images/favicon.ico"/>
<link rel="stylesheet" href="css/normalize.css">
<link rel="stylesheet" href="css/base.css">
<link href="https://fonts.googleapis.com/css2?family=Source+Sans+Pro:wght@400;600;700&display=swap" rel="stylesheet">
<link rel="stylesheet" href="css/template.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.0/css/all.min.css" integrity="sha256-ybRkN9dBjhcS2qrW1z+hfCxq+1aBdwyQM5wlQoQVt/0=" crossorigin="anonymous" />
<script src="https://cdn.jsdelivr.net/npm/fuse.js@3.4.6"></script>
<script src="https://cdn.jsdelivr.net/npm/css-vars-ponyfill@2"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.0/js/all.min.js" integrity="sha256-0vuk8LXoyrmCjp1f0O300qo1M75ZQyhH9X3J6d+scmk=" crossorigin="anonymous"></script>
<script src="js/search.js"></script>
<script defer src="js/searchIndex.js"></script>
</head>
<body id="top">
<header class="phpdocumentor-header phpdocumentor-section">
<h1 class="phpdocumentor-title"><a href="" class="phpdocumentor-title__link">Documentation</a></h1>
<input class="phpdocumentor-header__menu-button" type="checkbox" id="menu-button" name="menu-button" />
<label class="phpdocumentor-header__menu-icon" for="menu-button">
<i class="fas fa-bars"></i>
</label>
<section data-search-form class="phpdocumentor-search">
<label>
<span class="visually-hidden">Search for</span>
<svg class="phpdocumentor-search__icon" width="21" height="20" viewBox="0 0 21 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="7.5" cy="7.5" r="6.5" stroke="currentColor" stroke-width="2"/>
<line x1="12.4892" y1="12.2727" x2="19.1559" y2="18.9393" stroke="currentColor" stroke-width="3"/>
</svg>
<input type="search" class="phpdocumentor-field phpdocumentor-search__field" placeholder="Loading .." disabled />
</label>
</section>
<nav class="phpdocumentor-topnav">
<ul class="phpdocumentor-topnav__menu">
</ul>
</nav>
</header>
<main class="phpdocumentor">
<div class="phpdocumentor-section">
<input class="phpdocumentor-sidebar__menu-button" type="checkbox" id="sidebar-button" name="sidebar-button" />
<label class="phpdocumentor-sidebar__menu-icon" for="sidebar-button">
Menu
</label>
<aside class="phpdocumentor-column -four phpdocumentor-sidebar">
<section class="phpdocumentor-sidebar__category">
<h2 class="phpdocumentor-sidebar__category-header">Namespaces</h2>
<h4 class="phpdocumentor-sidebar__root-namespace"><a href="namespaces/taproot.html"><abbr title="\Taproot">Taproot</abbr></a></h4>
<ul class="phpdocumentor-list">
<li><a href="namespaces/taproot-indieauth.html"><abbr title="\Taproot\IndieAuth">IndieAuth</abbr></a></li>
</ul>
</section>
<section class="phpdocumentor-sidebar__category">
<h2 class="phpdocumentor-sidebar__category-header">Reports</h2>
<h3 class="phpdocumentor-sidebar__root-package"><a href="reports/deprecated.html">Deprecated</a></h3>
<h3 class="phpdocumentor-sidebar__root-package"><a href="reports/errors.html">Errors</a></h3>
<h3 class="phpdocumentor-sidebar__root-package"><a href="reports/markers.html">Markers</a></h3>
</section>
<section class="phpdocumentor-sidebar__category">
<h2 class="phpdocumentor-sidebar__category-header">Indices</h2>
<h3 class="phpdocumentor-sidebar__root-package"><a href="indices/files.html">Files</a></h3>
</section>
</aside>
<div class="phpdocumentor-column -eight phpdocumentor-content">
<ul class="phpdocumentor-breadcrumbs">
<li class="phpdocumentor-breadcrumb"><a href="namespaces/taproot.html">Taproot</a></li>
<li class="phpdocumentor-breadcrumb"><a href="namespaces/taproot-indieauth.html">IndieAuth</a></li>
<li class="phpdocumentor-breadcrumb"><a href="namespaces/taproot-indieauth-middleware.html">Middleware</a></li>
</ul>
<article class="phpdocumentor-element -class">
<h2 class="phpdocumentor-content__title">
DoubleSubmitCookieCsrfMiddleware
<span class="phpdocumentor-element__implements">
implements
<abbr title="\Psr\Http\Server\MiddlewareInterface">MiddlewareInterface</abbr>, <abbr title="\Psr\Log\LoggerAwareInterface">LoggerAwareInterface</abbr> </span>
</h2>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Middleware/DoubleSubmitCookieCsrfMiddleware.php"><a href="files/src-middleware-doublesubmitcookiecsrfmiddleware.html"><abbr title="src/Middleware/DoubleSubmitCookieCsrfMiddleware.php">DoubleSubmitCookieCsrfMiddleware.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">37</span>
</aside>
<p class="phpdocumentor-summary">Double-Submit Cookie CSRF Middleware</p>
<section class="phpdocumentor-description"><p>A PSR-15-compatible Middleware for stateless Double-Submit-Cookie-based CSRF protection.</p>
<p>The <code class="prettyprint">$attribute</code> property and first constructor argument sets the key by which the CSRF token
is referred to in all parameter sets (request attributes, request body parameters, cookies).</p>
<p>Generates a random token of length <code class="prettyprint">$tokenLength</code> (default 128), and stores it as an attribute
on the <code class="prettyprint">ServerRequestInterface</code>. Its also added to the response as a cookie.</p>
<p>On requests which may modify state (methods other than HEAD, GET or OPTIONS), the request body
and request cookies are checked for matching CSRF tokens. If they match, the request is passed on
to the handler. If they do not match, further processing is halted and an error response generated
from the <code class="prettyprint">$errorResponse</code> callback is returned. Refer to the constructor argument for information
about customising the error response.</p>
</section>
<h5 class="phpdocumentor-tag-list__heading" id="tags">
Tags
<a href="#tags" class="headerlink"><i class="fas fa-link"></i></a>
</h5>
<dl class="phpdocumentor-tag-list">
<dt class="phpdocumentor-tag-list__entry">
<span class="phpdocumentor-tag__name">link</span>
</dt>
<dd class="phpdocumentor-tag-list__definition">
<a class="phpdocumentor-tag-link" href="https://cheatsheetseries.owasp.org/cheatsheets/Cross-Site_Request_Forgery_Prevention_Cheat_Sheet.html"> https://cheatsheetseries.owasp.org/cheatsheets/Cross-Site_Request_Forgery_Prevention_Cheat_Sheet.html </a>
</dd>
<dt class="phpdocumentor-tag-list__entry">
<span class="phpdocumentor-tag__name">link</span>
</dt>
<dd class="phpdocumentor-tag-list__definition">
<a class="phpdocumentor-tag-link" href="https://github.com/zakirullin/csrf-middleware/blob/master/src/CSRF.php"> https://github.com/zakirullin/csrf-middleware/blob/master/src/CSRF.php </a>
</dd>
</dl>
<h3 id="interfaces_class_traits">
Interfaces, Classes and Traits
<a href="#interfaces_class_traits" class="headerlink"><i class="fas fa-link"></i></a>
</h3>
<dl class="phpdocumentor-table-of-contents">
<dt class="phpdocumentor-table-of-contents__entry -interface"><abbr title="\Psr\Http\Server\MiddlewareInterface">MiddlewareInterface</abbr></dt>
<dd></dd>
<dt class="phpdocumentor-table-of-contents__entry -interface"><abbr title="\Psr\Log\LoggerAwareInterface">LoggerAwareInterface</abbr></dt>
<dd></dd>
</dl>
<h3 id="toc">
Table of Contents
<a href="#toc" class="headerlink"><i class="fas fa-link"></i></a>
</h3>
<dl class="phpdocumentor-table-of-contents">
<dt class="phpdocumentor-table-of-contents__entry -constant -public">
<a href="classes/Taproot-IndieAuth-Middleware-DoubleSubmitCookieCsrfMiddleware.html#constant_ATTRIBUTE">ATTRIBUTE</a>
<span>
&nbsp;= &#039;csrf&#039; </span>
</dt>
<dd></dd>
<dt class="phpdocumentor-table-of-contents__entry -constant -public">
<a href="classes/Taproot-IndieAuth-Middleware-DoubleSubmitCookieCsrfMiddleware.html#constant_CSRF_TOKEN_LENGTH">CSRF_TOKEN_LENGTH</a>
<span>
&nbsp;= 128 </span>
</dt>
<dd></dd>
<dt class="phpdocumentor-table-of-contents__entry -constant -public">
<a href="classes/Taproot-IndieAuth-Middleware-DoubleSubmitCookieCsrfMiddleware.html#constant_DEFAULT_ERROR_RESPONSE_STRING">DEFAULT_ERROR_RESPONSE_STRING</a>
<span>
&nbsp;= &#039;Invalid or missing CSRF token!&#039; </span>
</dt>
<dd></dd>
<dt class="phpdocumentor-table-of-contents__entry -constant -public">
<a href="classes/Taproot-IndieAuth-Middleware-DoubleSubmitCookieCsrfMiddleware.html#constant_READ_METHODS">READ_METHODS</a>
<span>
&nbsp;= [&#039;HEAD&#039;, &#039;GET&#039;, &#039;OPTIONS&#039;] </span>
</dt>
<dd></dd>
<dt class="phpdocumentor-table-of-contents__entry -constant -public">
<a href="classes/Taproot-IndieAuth-Middleware-DoubleSubmitCookieCsrfMiddleware.html#constant_TTL">TTL</a>
<span>
&nbsp;= 60 * 20 </span>
</dt>
<dd></dd>
<dt class="phpdocumentor-table-of-contents__entry -property -public">
<a href="classes/Taproot-IndieAuth-Middleware-DoubleSubmitCookieCsrfMiddleware.html#property_attribute">$attribute</a>
<span>
&nbsp;: string </span>
</dt>
<dd></dd>
<dt class="phpdocumentor-table-of-contents__entry -property -public">
<a href="classes/Taproot-IndieAuth-Middleware-DoubleSubmitCookieCsrfMiddleware.html#property_errorResponse">$errorResponse</a>
<span>
&nbsp;: mixed </span>
</dt>
<dd></dd>
<dt class="phpdocumentor-table-of-contents__entry -property -public">
<a href="classes/Taproot-IndieAuth-Middleware-DoubleSubmitCookieCsrfMiddleware.html#property_logger">$logger</a>
<span>
&nbsp;: <abbr title="\Psr\Log\LoggerInterface">LoggerInterface</abbr> </span>
</dt>
<dd></dd>
<dt class="phpdocumentor-table-of-contents__entry -property -public">
<a href="classes/Taproot-IndieAuth-Middleware-DoubleSubmitCookieCsrfMiddleware.html#property_tokenLength">$tokenLength</a>
<span>
&nbsp;: int </span>
</dt>
<dd></dd>
<dt class="phpdocumentor-table-of-contents__entry -property -public">
<a href="classes/Taproot-IndieAuth-Middleware-DoubleSubmitCookieCsrfMiddleware.html#property_ttl">$ttl</a>
<span>
&nbsp;: int </span>
</dt>
<dd></dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a href="classes/Taproot-IndieAuth-Middleware-DoubleSubmitCookieCsrfMiddleware.html#method___construct">__construct()</a>
<span>
&nbsp;: mixed </span>
</dt>
<dd>Constructor</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a href="classes/Taproot-IndieAuth-Middleware-DoubleSubmitCookieCsrfMiddleware.html#method_process">process()</a>
<span>
&nbsp;: <abbr title="\Psr\Http\Message\ResponseInterface">ResponseInterface</abbr> </span>
</dt>
<dd></dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a href="classes/Taproot-IndieAuth-Middleware-DoubleSubmitCookieCsrfMiddleware.html#method_setLogger">setLogger()</a>
<span>
&nbsp;: mixed </span>
</dt>
<dd></dd>
<dt class="phpdocumentor-table-of-contents__entry -method -protected">
<a href="classes/Taproot-IndieAuth-Middleware-DoubleSubmitCookieCsrfMiddleware.html#method_isValid">isValid()</a>
<span>
&nbsp;: mixed </span>
</dt>
<dd></dd>
</dl>
<section class="phpdocumentor-constants">
<h3 class="phpdocumentor-elements__header" id="constants">
Constants
<a href="classes/Taproot-IndieAuth-Middleware-DoubleSubmitCookieCsrfMiddleware.html#constants" class="headerlink"><i class="fas fa-link"></i></a>
</h3>
<article class="phpdocumentor-element -constant -public ">
<h4 class="phpdocumentor-element__name" id="constant_ATTRIBUTE">
ATTRIBUTE
<a href="classes/Taproot-IndieAuth-Middleware-DoubleSubmitCookieCsrfMiddleware.html#constant_ATTRIBUTE" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Middleware/DoubleSubmitCookieCsrfMiddleware.php"><a href="files/src-middleware-doublesubmitcookiecsrfmiddleware.html"><abbr title="src/Middleware/DoubleSubmitCookieCsrfMiddleware.php">DoubleSubmitCookieCsrfMiddleware.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">40</span>
</aside>
<code class="phpdocumentor-signature phpdocumentor-code ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__type">mixed</span>
<span class="phpdocumentor-signature__name">ATTRIBUTE</span>
= <span class="phpdocumentor-signature__default-value">&#039;csrf&#039;</span>
</code>
</article>
<article class="phpdocumentor-element -constant -public ">
<h4 class="phpdocumentor-element__name" id="constant_CSRF_TOKEN_LENGTH">
CSRF_TOKEN_LENGTH
<a href="classes/Taproot-IndieAuth-Middleware-DoubleSubmitCookieCsrfMiddleware.html#constant_CSRF_TOKEN_LENGTH" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Middleware/DoubleSubmitCookieCsrfMiddleware.php"><a href="files/src-middleware-doublesubmitcookiecsrfmiddleware.html"><abbr title="src/Middleware/DoubleSubmitCookieCsrfMiddleware.php">DoubleSubmitCookieCsrfMiddleware.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">42</span>
</aside>
<code class="phpdocumentor-signature phpdocumentor-code ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__type">mixed</span>
<span class="phpdocumentor-signature__name">CSRF_TOKEN_LENGTH</span>
= <span class="phpdocumentor-signature__default-value">128</span>
</code>
</article>
<article class="phpdocumentor-element -constant -public ">
<h4 class="phpdocumentor-element__name" id="constant_DEFAULT_ERROR_RESPONSE_STRING">
DEFAULT_ERROR_RESPONSE_STRING
<a href="classes/Taproot-IndieAuth-Middleware-DoubleSubmitCookieCsrfMiddleware.html#constant_DEFAULT_ERROR_RESPONSE_STRING" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Middleware/DoubleSubmitCookieCsrfMiddleware.php"><a href="files/src-middleware-doublesubmitcookiecsrfmiddleware.html"><abbr title="src/Middleware/DoubleSubmitCookieCsrfMiddleware.php">DoubleSubmitCookieCsrfMiddleware.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">41</span>
</aside>
<code class="phpdocumentor-signature phpdocumentor-code ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__type">mixed</span>
<span class="phpdocumentor-signature__name">DEFAULT_ERROR_RESPONSE_STRING</span>
= <span class="phpdocumentor-signature__default-value">&#039;Invalid or missing CSRF token!&#039;</span>
</code>
</article>
<article class="phpdocumentor-element -constant -public ">
<h4 class="phpdocumentor-element__name" id="constant_READ_METHODS">
READ_METHODS
<a href="classes/Taproot-IndieAuth-Middleware-DoubleSubmitCookieCsrfMiddleware.html#constant_READ_METHODS" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Middleware/DoubleSubmitCookieCsrfMiddleware.php"><a href="files/src-middleware-doublesubmitcookiecsrfmiddleware.html"><abbr title="src/Middleware/DoubleSubmitCookieCsrfMiddleware.php">DoubleSubmitCookieCsrfMiddleware.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">38</span>
</aside>
<code class="phpdocumentor-signature phpdocumentor-code ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__type">mixed</span>
<span class="phpdocumentor-signature__name">READ_METHODS</span>
= <span class="phpdocumentor-signature__default-value">[&#039;HEAD&#039;, &#039;GET&#039;, &#039;OPTIONS&#039;]</span>
</code>
</article>
<article class="phpdocumentor-element -constant -public ">
<h4 class="phpdocumentor-element__name" id="constant_TTL">
TTL
<a href="classes/Taproot-IndieAuth-Middleware-DoubleSubmitCookieCsrfMiddleware.html#constant_TTL" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Middleware/DoubleSubmitCookieCsrfMiddleware.php"><a href="files/src-middleware-doublesubmitcookiecsrfmiddleware.html"><abbr title="src/Middleware/DoubleSubmitCookieCsrfMiddleware.php">DoubleSubmitCookieCsrfMiddleware.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">39</span>
</aside>
<code class="phpdocumentor-signature phpdocumentor-code ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__type">mixed</span>
<span class="phpdocumentor-signature__name">TTL</span>
= <span class="phpdocumentor-signature__default-value">60 * 20</span>
</code>
</article>
</section>
<section class="phpdocumentor-properties">
<h3 class="phpdocumentor-elements__header" id="properties">
Properties
<a href="classes/Taproot-IndieAuth-Middleware-DoubleSubmitCookieCsrfMiddleware.html#properties" class="headerlink"><i class="fas fa-link"></i></a>
</h3>
<article
class="
phpdocumentor-element
-property
-public
"
>
<h4 class="phpdocumentor-element__name" id="property_attribute">
$attribute
<a href="classes/Taproot-IndieAuth-Middleware-DoubleSubmitCookieCsrfMiddleware.html#property_attribute" class="headerlink"><i class="fas fa-link"></i></a>
<span class="phpdocumentor-element__modifiers">
</span>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Middleware/DoubleSubmitCookieCsrfMiddleware.php"><a href="files/src-middleware-doublesubmitcookiecsrfmiddleware.html"><abbr title="src/Middleware/DoubleSubmitCookieCsrfMiddleware.php">DoubleSubmitCookieCsrfMiddleware.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">44</span>
</aside>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__type">string</span>
<span class="phpdocumentor-signature__name">$attribute</span>
</code>
</article>
<article
class="
phpdocumentor-element
-property
-public
"
>
<h4 class="phpdocumentor-element__name" id="property_errorResponse">
$errorResponse
<a href="classes/Taproot-IndieAuth-Middleware-DoubleSubmitCookieCsrfMiddleware.html#property_errorResponse" class="headerlink"><i class="fas fa-link"></i></a>
<span class="phpdocumentor-element__modifiers">
</span>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Middleware/DoubleSubmitCookieCsrfMiddleware.php"><a href="files/src-middleware-doublesubmitcookiecsrfmiddleware.html"><abbr title="src/Middleware/DoubleSubmitCookieCsrfMiddleware.php">DoubleSubmitCookieCsrfMiddleware.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">48</span>
</aside>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__type">mixed</span>
<span class="phpdocumentor-signature__name">$errorResponse</span>
</code>
</article>
<article
class="
phpdocumentor-element
-property
-public
"
>
<h4 class="phpdocumentor-element__name" id="property_logger">
$logger
<a href="classes/Taproot-IndieAuth-Middleware-DoubleSubmitCookieCsrfMiddleware.html#property_logger" class="headerlink"><i class="fas fa-link"></i></a>
<span class="phpdocumentor-element__modifiers">
</span>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Middleware/DoubleSubmitCookieCsrfMiddleware.php"><a href="files/src-middleware-doublesubmitcookiecsrfmiddleware.html"><abbr title="src/Middleware/DoubleSubmitCookieCsrfMiddleware.php">DoubleSubmitCookieCsrfMiddleware.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">52</span>
</aside>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__type"><abbr title="\Psr\Log\LoggerInterface">LoggerInterface</abbr></span>
<span class="phpdocumentor-signature__name">$logger</span>
</code>
</article>
<article
class="
phpdocumentor-element
-property
-public
"
>
<h4 class="phpdocumentor-element__name" id="property_tokenLength">
$tokenLength
<a href="classes/Taproot-IndieAuth-Middleware-DoubleSubmitCookieCsrfMiddleware.html#property_tokenLength" class="headerlink"><i class="fas fa-link"></i></a>
<span class="phpdocumentor-element__modifiers">
</span>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Middleware/DoubleSubmitCookieCsrfMiddleware.php"><a href="files/src-middleware-doublesubmitcookiecsrfmiddleware.html"><abbr title="src/Middleware/DoubleSubmitCookieCsrfMiddleware.php">DoubleSubmitCookieCsrfMiddleware.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">50</span>
</aside>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__type">int</span>
<span class="phpdocumentor-signature__name">$tokenLength</span>
</code>
</article>
<article
class="
phpdocumentor-element
-property
-public
"
>
<h4 class="phpdocumentor-element__name" id="property_ttl">
$ttl
<a href="classes/Taproot-IndieAuth-Middleware-DoubleSubmitCookieCsrfMiddleware.html#property_ttl" class="headerlink"><i class="fas fa-link"></i></a>
<span class="phpdocumentor-element__modifiers">
</span>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Middleware/DoubleSubmitCookieCsrfMiddleware.php"><a href="files/src-middleware-doublesubmitcookiecsrfmiddleware.html"><abbr title="src/Middleware/DoubleSubmitCookieCsrfMiddleware.php">DoubleSubmitCookieCsrfMiddleware.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">46</span>
</aside>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__type">int</span>
<span class="phpdocumentor-signature__name">$ttl</span>
</code>
</article>
</section>
<section class="phpdocumentor-methods">
<h3 class="phpdocumentor-elements__header" id="methods">
Methods
<a href="classes/Taproot-IndieAuth-Middleware-DoubleSubmitCookieCsrfMiddleware.html#methods" class="headerlink"><i class="fas fa-link"></i></a>
</h3>
<article
class="phpdocumentor-element
-method
-public
"
>
<h4 class="phpdocumentor-element__name" id="method___construct">
__construct()
<a href="classes/Taproot-IndieAuth-Middleware-DoubleSubmitCookieCsrfMiddleware.html#method___construct" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Middleware/DoubleSubmitCookieCsrfMiddleware.php"><a href="files/src-middleware-doublesubmitcookiecsrfmiddleware.html"><abbr title="src/Middleware/DoubleSubmitCookieCsrfMiddleware.php">DoubleSubmitCookieCsrfMiddleware.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">65</span>
</aside>
<p class="phpdocumentor-summary">Constructor</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__name">__construct</span><span>(</span><span class="phpdocumentor-signature__argument"><span>[</span><span class="phpdocumentor-signature__argument__return-type">string|null&nbsp;</span><span class="phpdocumentor-signature__argument__name">$attribute</span><span> = </span><span class="phpdocumentor-signature__argument__default-value">self::ATTRIBUTE</span><span> ]</span></span><span class="phpdocumentor-signature__argument"><span>[</span><span>, </span><span class="phpdocumentor-signature__argument__return-type">int|null&nbsp;</span><span class="phpdocumentor-signature__argument__name">$ttl</span><span> = </span><span class="phpdocumentor-signature__argument__default-value">self::TTL</span><span> ]</span></span><span class="phpdocumentor-signature__argument"><span>[</span><span>, </span><span class="phpdocumentor-signature__argument__return-type">mixed&nbsp;</span><span class="phpdocumentor-signature__argument__name">$errorResponse</span><span> = </span><span class="phpdocumentor-signature__argument__default-value">self::DEFAULT_ERROR_RESPONSE_STRING</span><span> ]</span></span><span class="phpdocumentor-signature__argument"><span>[</span><span>, </span><span class="phpdocumentor-signature__argument__return-type">mixed&nbsp;</span><span class="phpdocumentor-signature__argument__name">$tokenLength</span><span> = </span><span class="phpdocumentor-signature__argument__default-value">self::CSRF_TOKEN_LENGTH</span><span> ]</span></span><span class="phpdocumentor-signature__argument"><span>[</span><span>, </span><span class="phpdocumentor-signature__argument__return-type">mixed&nbsp;</span><span class="phpdocumentor-signature__argument__name">$logger</span><span> = </span><span class="phpdocumentor-signature__argument__default-value">null</span><span> ]</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">mixed</span></code>
<section class="phpdocumentor-description"><p>The <code class="prettyprint">$errorResponse</code> parameter can be used to customse the error response returned when a
write request has invalid CSRF parameters. It can take the following forms:</p>
<ul>
<li>A <code class="prettyprint">string</code>, which will be returned as-is with a 400 Status Code and <code class="prettyprint">Content-type: text/plain</code> header</li>
<li>An instance of <code class="prettyprint">ResponseInterface</code>, which will be returned as-is</li>
<li>A callable with the signature <code class="prettyprint">function (ServerRequestInterface $request): ResponseInterface</code>,
the return value of which will be returned as-is.</li>
</ul>
</section>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$attribute</span>
: <span class="phpdocumentor-signature__argument__return-type">string|null</span>
= <span class="phpdocumentor-signature__argument__default-value">self::ATTRIBUTE</span> </dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$ttl</span>
: <span class="phpdocumentor-signature__argument__return-type">int|null</span>
= <span class="phpdocumentor-signature__argument__default-value">self::TTL</span> </dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$errorResponse</span>
: <span class="phpdocumentor-signature__argument__return-type">mixed</span>
= <span class="phpdocumentor-signature__argument__default-value">self::DEFAULT_ERROR_RESPONSE_STRING</span> </dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$tokenLength</span>
: <span class="phpdocumentor-signature__argument__return-type">mixed</span>
= <span class="phpdocumentor-signature__argument__default-value">self::CSRF_TOKEN_LENGTH</span> </dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$logger</span>
: <span class="phpdocumentor-signature__argument__return-type">mixed</span>
= <span class="phpdocumentor-signature__argument__default-value">null</span> </dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">mixed</span>
&mdash;
<section class="phpdocumentor-description"></section>
</article>
<article
class="phpdocumentor-element
-method
-public
"
>
<h4 class="phpdocumentor-element__name" id="method_process">
process()
<a href="classes/Taproot-IndieAuth-Middleware-DoubleSubmitCookieCsrfMiddleware.html#method_process" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Middleware/DoubleSubmitCookieCsrfMiddleware.php"><a href="files/src-middleware-doublesubmitcookiecsrfmiddleware.html"><abbr title="src/Middleware/DoubleSubmitCookieCsrfMiddleware.php">DoubleSubmitCookieCsrfMiddleware.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">91</span>
</aside>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__name">process</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type"><abbr title="\Psr\Http\Message\ServerRequestInterface">ServerRequestInterface</abbr>&nbsp;</span><span class="phpdocumentor-signature__argument__name">$request</span></span><span class="phpdocumentor-signature__argument"><span>, </span><span class="phpdocumentor-signature__argument__return-type"><abbr title="\Psr\Http\Server\RequestHandlerInterface">RequestHandlerInterface</abbr>&nbsp;</span><span class="phpdocumentor-signature__argument__name">$handler</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type"><abbr title="\Psr\Http\Message\ResponseInterface">ResponseInterface</abbr></span></code>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$request</span>
: <span class="phpdocumentor-signature__argument__return-type"><abbr title="\Psr\Http\Message\ServerRequestInterface">ServerRequestInterface</abbr></span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$handler</span>
: <span class="phpdocumentor-signature__argument__return-type"><abbr title="\Psr\Http\Server\RequestHandlerInterface">RequestHandlerInterface</abbr></span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type"><abbr title="\Psr\Http\Message\ResponseInterface">ResponseInterface</abbr></span>
&mdash;
<section class="phpdocumentor-description"></section>
</article>
<article
class="phpdocumentor-element
-method
-public
"
>
<h4 class="phpdocumentor-element__name" id="method_setLogger">
setLogger()
<a href="classes/Taproot-IndieAuth-Middleware-DoubleSubmitCookieCsrfMiddleware.html#method_setLogger" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Middleware/DoubleSubmitCookieCsrfMiddleware.php"><a href="files/src-middleware-doublesubmitcookiecsrfmiddleware.html"><abbr title="src/Middleware/DoubleSubmitCookieCsrfMiddleware.php">DoubleSubmitCookieCsrfMiddleware.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">87</span>
</aside>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__name">setLogger</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type"><abbr title="\Psr\Log\LoggerInterface">LoggerInterface</abbr>&nbsp;</span><span class="phpdocumentor-signature__argument__name">$logger</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">mixed</span></code>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$logger</span>
: <span class="phpdocumentor-signature__argument__return-type"><abbr title="\Psr\Log\LoggerInterface">LoggerInterface</abbr></span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">mixed</span>
&mdash;
<section class="phpdocumentor-description"></section>
</article>
<article
class="phpdocumentor-element
-method
-protected
"
>
<h4 class="phpdocumentor-element__name" id="method_isValid">
isValid()
<a href="classes/Taproot-IndieAuth-Middleware-DoubleSubmitCookieCsrfMiddleware.html#method_isValid" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Middleware/DoubleSubmitCookieCsrfMiddleware.php"><a href="files/src-middleware-doublesubmitcookiecsrfmiddleware.html"><abbr title="src/Middleware/DoubleSubmitCookieCsrfMiddleware.php">DoubleSubmitCookieCsrfMiddleware.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">114</span>
</aside>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">protected</span>
<span class="phpdocumentor-signature__name">isValid</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type"><abbr title="\Psr\Http\Message\ServerRequestInterface">ServerRequestInterface</abbr>&nbsp;</span><span class="phpdocumentor-signature__argument__name">$request</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">mixed</span></code>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$request</span>
: <span class="phpdocumentor-signature__argument__return-type"><abbr title="\Psr\Http\Message\ServerRequestInterface">ServerRequestInterface</abbr></span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">mixed</span>
&mdash;
<section class="phpdocumentor-description"></section>
</article>
</section>
</article>
<section data-search-results class="phpdocumentor-search-results phpdocumentor-search-results--hidden">
<section class="phpdocumentor-search-results__dialog">
<header class="phpdocumentor-search-results__header">
<h2 class="phpdocumentor-search-results__title">Search results</h2>
<button class="phpdocumentor-search-results__close"><i class="fas fa-times"></i></button>
</header>
<section class="phpdocumentor-search-results__body">
<ul class="phpdocumentor-search-results__entries"></ul>
</section>
</section>
</section>
</div>
</div>
<a href="classes/Taproot-IndieAuth-Middleware-DoubleSubmitCookieCsrfMiddleware.html#top" class="phpdocumentor-back-to-top"><i class="fas fa-chevron-circle-up"></i></a>
</main>
<script>
cssVars({});
</script>
</body>
</html>