D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
opt
/
psa
/
admin
/
plib
/
modules
/
grafana
/
vendor
/
lcobucci
/
jwt
/
src
/
Validation
/
Constraint
/
Filename :
SignedWith.php
back
Copy
<?php declare (strict_types=1); namespace PleskGrafana\Lcobucci\JWT\Validation\Constraint; use PleskGrafana\Lcobucci\JWT\Signer; use PleskGrafana\Lcobucci\JWT\Token; use PleskGrafana\Lcobucci\JWT\UnencryptedToken; use PleskGrafana\Lcobucci\JWT\Validation\ConstraintViolation; use PleskGrafana\Lcobucci\JWT\Validation\SignedWith as SignedWithInterface; final class SignedWith implements SignedWithInterface { public function __construct(private readonly Signer $signer, private readonly Signer\Key $key) { } public function assert(Token $token) : void { if (!$token instanceof UnencryptedToken) { throw ConstraintViolation::error('You should pass a plain token', $this); } if ($token->headers()->get('alg') !== $this->signer->algorithmId()) { throw ConstraintViolation::error('Token signer mismatch', $this); } if (!$this->signer->verify($token->signature()->hash(), $token->payload(), $this->key)) { throw ConstraintViolation::error('Token signature mismatch', $this); } } }