50.2. Funciones de inicialización #

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.