49.2. Функции инициализации#
49.2. Функции инициализации #
Модули валидатора OAuth динамически загружаются из общих
библиотек, перечисленных в oauth_validator_libraries.
Модули загружаются по требованию, когда это необходимо для входа в систему.
Для поиска библиотеки используется обычный путь поиска библиотек. Чтобы
предоставить обратные вызовы валидатора и указать, что библиотека является модулем валидатора OAuth, должна быть предоставлена функция с именем
_PG_oauth_validator_module_init
. Возвращаемое значение
функции должно быть указателем на структуру типа
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
является обязательным, остальные
являются необязательными.