如何在WordPress中访问Keyring管理的凭据?
如何通过Keyring获取存储的Gmail OAuth令牌
完全不需要手动查询posts表,Keyring提供了专门的API来安全获取已存储的凭据——这是官方推荐的方式,既避免了直接操作数据库的安全风险,也能兼容Keyring版本更新带来的存储逻辑变化。
核心获取步骤
Keyring的核心函数是keyring_get_item(),按以下流程获取令牌即可:
确认凭据的组名与名称
配置Gmail OAuth时,你会指定凭据的group(比如google)和name(比如gmail_oauth);如果是默认配置,通常会以服务标识作为组名,以应用名称作为凭据名称。调用API提取令牌
使用示例代码:// 替换为你实际的组名和凭据名称 $credential = keyring_get_item('google', 'gmail_oauth'); if ($credential) { // 获取可用的访问令牌 $access_token = $credential->data['access_token']; // 获取刷新令牌(用于令牌过期后重新获取) $refresh_token = $credential->data['refresh_token']; // 获取令牌过期时间戳 $expires_at = $credential->data['expires']; }
辅助排查方法
如果不确定目标凭据的组名或名称,可以用keyring_get_items()列出所有存储的凭据,快速定位目标:
$all_credentials = keyring_get_items(); foreach ($all_credentials as $item) { echo "组:{$item->group} | 名称:{$item->name} | 类型:{$item->type}\n"; }
重要提醒
不要直接读取posts表:Keyring存储的凭据是加密状态,直接从数据库字段拿到的是密文,无法直接用于API调用;同时Keyring的存储结构可能随版本调整,直接操作数据库会导致代码兼容性极差。
内容的提问来源于stack exchange,提问作者Alana Storm
相关产品推荐
相关产品推荐

