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
, остальные — необязательные.