归档
This commit is contained in:
74
includes/OAuth2/Storage/JwtBearerInterface.php
Normal file
74
includes/OAuth2/Storage/JwtBearerInterface.php
Normal file
@@ -0,0 +1,74 @@
|
||||
<?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);
|
||||
}
|
||||
Reference in New Issue
Block a user