Los módulos validadores de OAuth se cargan dinámicamente desde las bibliotecas compartidas
enumeradas en oauth_validator_libraries.
Los módulos se cargan bajo demanda cuando se solicita un inicio de sesión en curso.
Se utiliza la ruta de búsqueda de biblioteca normal para localizar la biblioteca. Para
proporcionar las devoluciones de llamada del validador e indicar que la biblioteca es un módulo
validador de OAuth, se debe proporcionar una función llamada
_PG_oauth_validator_module_init. El valor de retorno
de la función debe ser un puntero a una estructura de tipo
OAuthValidatorCallbacks, que contiene un número mágico
y punteros a las funciones de validación de tokens del módulo. El puntero devuelto
debe tener el tiempo de vida del servidor, lo que normalmente se logra definiéndolo
como una variable static const en el ámbito global.
typedef struct OAuthValidatorCallbacks
{
uint32 magic; /* debe establecerse en PG_OAUTH_VALIDATOR_MAGIC */
ValidatorStartupCB startup_cb;
ValidatorShutdownCB shutdown_cb;
ValidatorValidateCB validate_cb;
} OAuthValidatorCallbacks;
typedef const OAuthValidatorCallbacks *(*OAuthValidatorModuleInit) (void);
Solo la devolución de llamada validate_cb es obligatoria, las demás
son opcionales.