75 lines
1.9 KiB
PHP
75 lines
1.9 KiB
PHP
|
<?php
|
||
|
|
||
|
namespace OAuth2\Storage;
|
||
|
|
||
|
/**
|
||
|
* Implement this interface to specify where the OAuth2 Server
|
||
|
* should get the JWT key for clients
|
||
|
*
|
||
|
* @TODO consider extending ClientInterface, as this will almost always
|
||
|
* be the same storage as retrieving clientData
|
||
|
*
|
||
|
* @author F21
|
||
|
* @author Brent Shaffer <bshafs at gmail dot com>
|
||
|
*/
|
||
|
interface JwtBearerInterface
|
||
|
{
|
||
|
/**
|
||
|
* Get the public key associated with a client_id
|
||
|
*
|
||
|
* @param $client_id
|
||
|
* Client identifier to be checked with.
|
||
|
*
|
||
|
* @return
|
||
|
* STRING Return the public key for the client_id if it exists, and MUST return FALSE if it doesn't.
|
||
|
*/
|
||
|
public function getClientKey($client_id, $subject);
|
||
|
|
||
|
/**
|
||
|
* Get a jti (JSON token identifier) by matching against the client_id, subject, audience and expiration.
|
||
|
*
|
||
|
* @param $client_id
|
||
|
* Client identifier to match.
|
||
|
*
|
||
|
* @param $subject
|
||
|
* The subject to match.
|
||
|
*
|
||
|
* @param $audience
|
||
|
* The audience to match.
|
||
|
*
|
||
|
* @param $expiration
|
||
|
* The expiration of the jti.
|
||
|
*
|
||
|
* @param $jti
|
||
|
* The jti to match.
|
||
|
*
|
||
|
* @return
|
||
|
* An associative array as below, and return NULL if the jti does not exist.
|
||
|
* - issuer: Stored client identifier.
|
||
|
* - subject: Stored subject.
|
||
|
* - audience: Stored audience.
|
||
|
* - expires: Stored expiration in unix timestamp.
|
||
|
* - jti: The stored jti.
|
||
|
*/
|
||
|
public function getJti($client_id, $subject, $audience, $expiration, $jti);
|
||
|
|
||
|
/**
|
||
|
* Store a used jti so that we can check against it to prevent replay attacks.
|
||
|
* @param $client_id
|
||
|
* Client identifier to insert.
|
||
|
*
|
||
|
* @param $subject
|
||
|
* The subject to insert.
|
||
|
*
|
||
|
* @param $audience
|
||
|
* The audience to insert.
|
||
|
*
|
||
|
* @param $expiration
|
||
|
* The expiration of the jti.
|
||
|
*
|
||
|
* @param $jti
|
||
|
* The jti to insert.
|
||
|
*/
|
||
|
public function setJti($client_id, $subject, $audience, $expiration, $jti);
|
||
|
}
|