50.2. Функции инициализации #
Модули проверки OAuth загружаются динамически из разделяемых библиотек, указанных в параметре oauth_validator_libraries. Они загружаются по требованию в процессе входа в систему. Для нахождения библиотеки применяется обычный путь поиска библиотек. Необходима функция _PG_oauth_validator_module_init, которая показывает, что библиотека на самом деле является модулем проверки OAuth, и устанавливает обработчики проверки. Эта функция должна возвращать указатель на структуру типа OAuthValidatorCallbacks, которая содержит «магическое» число и указатели на функции модуля для проверки токена. Возвращаемый указатель должен существовать всё время жизни сервера, что обычно достигается объявлением глобальной переменной static const.
typedef struct OAuthValidatorCallbacks
{
uint32 magic; /* must be set to PG_OAUTH_VALIDATOR_MAGIC */
ValidatorStartupCB startup_cb;
ValidatorShutdownCB shutdown_cb;
ValidatorValidateCB validate_cb;
} OAuthValidatorCallbacks;
typedef const OAuthValidatorCallbacks *(*OAuthValidatorModuleInit) (void); Обязательным является только обработчик validate_cb, остальные — необязательные.