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 回调函数,其他是可选的。