48.2. Функции инициализации#
48.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 является обязательным, остальные
являются необязательными.