PostgreSQL 18 中文参考文档(未翻译部分保留英文)🌐 切换到英文原版 →

50.3. OAuth 验证器回调接口 #

50.3.1. 启动回调(Startup Callback)
50.3.2. 验签回调(Validate Callback)
50.3.3. 注销回调(Shutdown Callback)

50.3.1. 启动回调(Startup Callback) #

在模块载入时调用,用于初始化本地缓存状态:

typedef void (*ArchiveStartupCB) (ArchiveModuleState *state);

50.3.2. 验签回调(Validate Callback) #

当用户发起基于 OAuth 的握手认证时被系统调用:

typedef bool (*ValidatorValidateCB) (const ValidatorModuleState *state,
                                     const char *token, const char *role,
                                     ValidatorModuleResult *result);

其中结构体定义如下:

typedef struct ValidatorModuleResult
{
    bool        authorized;
    char       *authn_id;
} ValidatorModuleResult;

只有当模块将 result->authorized 置为 true 时,连接才被允许继续向下推进,并通过 result->authn_id 回传经由令牌核验得出的权威用户名。

50.3.3. 注销回调(Shutdown Callback) #

在后台会话完成认证生命周期后被调用,用于释放内存缓存与网络套接字句柄:

typedef void (*ValidatorShutdownCB) (ValidatorModuleState *state);