# depicter/trunk/app/src/Middleware/NonceFieldMiddleware.php

Depicter — Popup &amp; Slider Builder, version trunk. 48 lines.

- Page: https://pluginprobe.com/plugins/depicter/trunk/code/app/src/Middleware/NonceFieldMiddleware.php
- Raw: https://pluginprobe.com/plugins/depicter/trunk/raw/app/src/Middleware/NonceFieldMiddleware.php
- Modified: 2025-11-30T12:19:42+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/depicter/trunk/code/app/src/Middleware/NonceFieldMiddleware.php#L10-L20`.

```php
<?php
namespace Depicter\Middleware;


use WPEmerge\Requests\RequestInterface;
use WPEmerge\Responses\ResponseService;

class NonceFieldMiddleware
{

	/**
	 * Response service.
	 *
	 * @var ResponseService
	 */
	protected $responseService = null;

	/**
	 * Constructor.
	 *
	 * @codeCoverageIgnore
	 * @param ResponseService $responseService
	 */
	public function __construct( ResponseService $responseService ) {
		$this->responseService = $responseService;
	}

	/**
	 * @param RequestInterface $request
	 * @param                  $next
	 * @param string           $action
	 * @param string           $nonce
	 * @param string           $method
	 *
	 * @return mixed|ResponseService
	 */
	public function handle( RequestInterface $request, $next, string $action = 'depicter-nonce', string $nonce = '_wpnonce', string $method = 'post' ){
		$nonce = $method == 'post' ? $request->body($nonce ) : $request->query($nonce);
		if ( empty($nonce) || ! wp_verify_nonce( sanitize_text_field( wp_unslash( $nonce ) ), $action ) ) {
			return $this->responseService->json([
				'errors' => ['Nonce is invalid']
			]);
		}

		return $next( $request );
	}
}

```
