⭐ 如果这个项目对你有帮助,请给它一个 Star!⭐
WP-OmniAuth 是一个开箱即用的 WordPress OAuth 2.0 登录插件。与市面上大多数只支持一两个平台的 OAuth 插件不同,它内置了 12 个主流 OAuth 提供商,并允许你通过后台界面添加任意自定义 OAuth 2.0 提供商——无需写一行代码。

更重要的是,它不止是一个登录插件。它还内置了 IP 黑名单/限流/自动封禁、登录历史统计、调试日志、紧急访问后门、数据导出/恢复等企业级功能,全部在一个统一的设置界面中完成。
| 平台 | 地区 |
|---|---|
| GitHub | 全球 |
| 全球 | |
| Apple | 全球 |
| Microsoft | 全球 |
| WeChat(微信) | 中国 |
| Weibo(微博) | 中国 |
| …….. |
核心功能
多个 内置提供商
覆盖国内外主流平台,一个插件解决所有第三方登录需求。
无限自定义提供商
通过后台”自定义提供商”功能,可以添加任何符合 OAuth 2.0 标准的服务(Keycloak、Auth0、GitLab 自建实例等)。
仅 OAuth 模式
开启后彻底隐藏密码登录框,站点完全通过 OAuth 认证——适用于纯 SSO 场景。
安全与限流
- IP 黑名单(支持 CIDR)
- 每秒请求限流(按 IP、按提供商、按账号三级)
- 自动封禁(失败次数阈值自动拉黑)
- 受信代理 IP 白名单(防止 X-Forwarded-For 伪造)
- 紧急访问后门(邮箱链接 + 手动密钥双重途径,15 分钟有效期)
- 重放攻击防护(State 参数 + 已用代码记录)
登录记录与统计
仪表盘展示今日/本周登录成功数、失败数、活跃提供商统计。所有登录尝试持久化存储,支持自动清理。
调试日志
内置日志查看器,自动脱敏密钥和 Token,方便排障。
GitHub 自更新
接入 WordPress 原生插件更新系统——新版本发布后,更新通知会显示在标准的「插件 → 已安装插件」页面。支持中国大陆镜像源(gh-proxy.org)。
管理员绑定
管理员可以在配置提供商时直接「测试连接并绑定」,将自己的账号与提供商的稳定 ID 关联——即使日后更换邮箱,绑定也不会失效。
数据导出与恢复
支持将全部插件配置、用户绑定、登录记录导出为加密 JSON 文件,并可随时恢复——方便迁移或备份。
为什么选择 WP-OmniAuth?
对比其他 OAuth 插件
| 特性 | WP-OmniAuth | 其他插件 |
|---|---|---|
| 内置提供商 | 12+ | 通常 1-4 个 |
| 自定义提供商 | ✅ 后台直接添加 | ❌ 多数不支持 |
| 安全限流 | ✅ IP/提供商/账号三级 + 自动封禁 | ❌ 一般没有 |
| 登录记录 | ✅ 仪表盘统计 + 持久化存储 | ❌ 一般不记录 |
| 自更新 | ✅ WP 原生更新系统 | ❌ 需手动更新 |
| 紧急后门 | ✅ 邮箱链接 + 密钥 | ❌ 一般没有 |
| 导出/恢复 | ✅ AES 加密导出 | ❌ 一般没有 |
| 中文化 | ✅ 完整 zh_CN 翻译 | ❌ 一般只有英文 |
适用场景
- 个人博客 / 企业站:为用户提供微信、微博、GitHub 等快捷登录
- SaaS 平台 / 会员系统:需要统一的 OAuth 认证入口
- 企业内部系统:对接企业微信、钉钉等内部 OAuth
- 开发测试环境:快速接入多种第三方登录做测试
安装方式
方式一:后台直接安装(推荐)
- 下载 ZIP 包
- WordPress 后台 → 插件 → 安装插件 → 上传插件
- 选择 ZIP 文件 → 立即安装 → 启用
- 进入 设置 → WP-OmniAuth 配置提供商
方式二:手动安装
- 将 ZIP 解压到
/wp-content/plugins/wp-omni-auth/ - 在插件管理页面启用
- 进入 设置 → WP-OmniAuth 配置
快速开始
本文档包含了 WP-OmniAuth 插件所有内置 OAuth 提供商的配置教程。 (如有疏漏请及时提醒~)
注意:每个 provider 的回调 URL 格式为: https://your-site.com/wp-login.php?wpomni_callback={slug}
GitHub
回调 URL: https://your-site.com/wp-login.php?wpomni_callback=github
步骤:
- 前往 GitHub Developer Settings 并点击 “New OAuth App”
- 填写表单:Application name 可任意填写(如站点名称),Homepage URL 填站点 URL,Authorization callback URL 必须填写回调 URL
- 点击 “Register application”
- 在应用页面复制 Client ID 粘贴到插件的 Client ID 字段
- 点击 “Generate a new client secret”,复制后粘贴到 Client Secret 字段
- 勾选 “Enable” 并保存
注意事项:
- 如果站点使用 Cloudflare,回调必须直接访问 wp-login.php,可能需要创建 Page Rule 绕过缓存
- 默认 scope
user:email足够使用
回调 URL: https://your-site.com/wp-login.php?wpomni_callback=google
步骤:
- 前往 Google Cloud Console 创建新项目(或选择已有项目)
- 导航到 APIs & Services > OAuth consent screen,选择 “External” 用户类型,填写必要信息并添加邮箱为测试用户
- 导航到 APIs & Services > Credentials,点击 “Create Credentials” > “OAuth client ID”
- 选择 “Web application” 作为应用类型
- 在 “Authorized redirect URIs” 下添加回调 URL
- 点击 “Create”,复制 Client ID 和 Client Secret 粘贴到插件字段
- 勾选 “Enable” 并保存
注意事项:
- 如果 Google 账户处于 “testing” 模式,只有添加的测试用户可以登录
- 默认 scope
openid email profile推荐使用 - 如果站点使用 Cloudflare,需创建 Page Rule 绕过缓存
Apple
回调 URL: https://your-site.com/wp-login.php?wpomni_callback=apple
步骤:
- 前往 Apple Developer – Identifiers
- 创建一个服务 ID(Service ID,不是 App ID),启用 “Sign in with Apple”
- 配置 Return URL 为回调 URL
- 复制服务 ID 粘贴到插件的 Service ID 字段
- 创建一个密钥(Key)→ 启用 “Sign in with Apple” → 下载 .p8 文件
- 粘贴 Key ID 和 .p8 内容到插件字段。在 Membership 中查找 Team ID
- 勾选 “Enable” 并保存
注意事项:
- 需要付费的 Apple 开发者账号($99/年)
- Apple 仅在首次授权时提供真实邮箱,后续登录可能返回私有中继邮箱
- ES256 签名需要 OpenSSL PHP 扩展
Microsoft
回调 URL: https://your-site.com/wp-login.php?wpomni_callback=microsoft
步骤:
- 前往 Azure Portal – App registrations 并点击 “New registration”
- 填写 Name,选择合适的 Supported account types
- 在 Redirect URI 中选择 “Web” 并输入回调 URL
- 点击 “Register”,复制 Application (client) ID
- 进入 Certificates & secrets → “New client secret”,复制生成的 Secret Value
- 勾选 “Enable” 并保存
注意事项:
- “common” 允许个人和组织账户
- Client secrets 有过期时间,需在到期前轮换(最长 2 年)
WeChat(微信)
回调 URL: https://your-site.com/wp-login.php?wpomni_callback=wechat
步骤:
- 前往 微信开放平台 创建网站应用
- 填写应用信息,设置授权回调域为你的域名(无协议无路径)
- 审核通过后复制 AppID 和 AppSecret
- 勾选 “Enable” 并保存
注意事项:
- 微信开放平台需要企业认证,审核约 1-7 天
- 回调域只需填写域名(例如 example.com),不含 https:// 和路径
- 使用扫码登录,用户需在微信中扫描
Weibo(微博)
回调 URL: https://your-site.com/wp-login.php?wpomni_callback=weibo
步骤:
- 前往 微博开放平台 创建网站应用
- 填写应用信息,设置授权回调页为回调 URL
- 审核通过后复制 App Key 和 App Secret
- 勾选 “Enable” 并保存
注意事项:
- 微博 OAuth 不返回用户邮箱,插件会从用户 ID 合成稳定的伪邮箱
Feishu(飞书)
回调 URL: https://your-site.com/wp-login.php?wpomni_callback=feishu
步骤:
- 前往 飞书开放平台 创建自建应用
- 在安全设置中添加重定向 URL 为回调 URL
- 从凭证页面复制 App ID 和 App Secret
- 添加权限:
contact:user.email:readonly和contact:user.id:readonly - 发布应用版本并等待审核通过,勾选 “Enable” 并保存
注意事项:
- 飞书 OAuth 不使用标准 scope,权限在管理后台控制
- 邮箱需要企业管理员授权
- 国际版(Lark)需要在设置中将 Region 切换为 International
Gitee(码云)
回调 URL: https://your-site.com/wp-login.php?wpomni_callback=gitee
步骤:
- 前往 Gitee Applications 点击 “Create App”
- 设置 Callback URL 为回调 URL
- 复制 Client ID 和 Client Secret
- 勾选 “Enable” 并保存
注意事项:
- Gitee 是国内平台,无需代理
- 默认 scope “user_info emails” 获取用户信息和邮箱
DingTalk(钉钉)
回调 URL: https://your-site.com/wp-login.php?wpomni_callback=dingtalk
步骤:
- 前往 钉钉开放平台 创建扫码登录应用
- 在登录与分享中添加回调 URL
- 复制 AppKey 和 AppSecret
- 勾选 “Enable” 并保存
注意事项:
- 钉钉使用扫码登录,用户需在钉钉 App 中扫描
- 需创建”扫码登录应用”,而非”企业内部应用”
Authentik
回调 URL: https://your-site.com/wp-login.php?wpomni_callback=authentik
步骤:
- 前往 Authentik 管理后台 → Applications → Providers → Create → 选择 “OAuth2/OpenID Provider”
- 设置 Redirect URI 为回调 URL
- 设置 Client type 为 “Confidential”,复制自动生成的 Client ID 和 Client Secret
- 创建 Application 并关联到该 Provider
- 在插件中粘贴 Client ID、Client Secret 和 Authentik 实例 URL
- 检查 Scope 是否包含
openid email profile(默认即可) - 勾选 “Enable” 并保存
注意事项:
- Authentik 是自建身份提供商,支持 OIDC 和 SAML
- 实例 URL 应填写 Authentik 的访问地址,例如
https://auth.example.com(不带尾部斜杠) - 如果应用要求信息签名,需在 Authentik 中指定 Signing Key
- 授权流程可选
explicit-consent(需用户确认)或implicit-consent(自动授权)
Custom Provider(通用自定义)
回调 URL: https://your-site.com/wp-login.php?wpomni_callback={your-slug}
步骤:
- 在 OAuth provider 中注册新应用,设置 Redirect/Callback URL 为回调 URL
- 复制 Client ID 和 Client Secret 粘贴到插件字段
- 查找 provider 的 OAuth 文档,填写 Authorization URL、Token URL 和 User Info URL
- 设置 Email Field 为用户信息响应中包含邮箱的 JSON key(默认
email) - 如果 provider 要求以 query parameter 而非 Bearer header 传递 token,取消勾选 “Token in Header”
- 如果 token 响应使用非标准 key(非
access_token),设置 Token Response Key - 勾选 “Enable” 并保存
安全说明
- 所有 OAuth 端点强制 HTTPS
- State 参数使用 SHA-256 随机 Token,10 分钟过期,单次消费
- 密钥和 Token 写入日志时自动脱敏
- 所有管理端 AJAX 请求都经过 nonce 验证 +
manage_options权限检查 - 导出数据使用 AES-256-CBC 加密,密钥绑定站点
AUTH_KEY+NONCE_KEY - 如果 userinfo 端点返回嵌套对象(如 {“user”: {“email”: “…”}}),插件会自动检查子对象
开源协议
GPLv2 or later
链接
WP-OmniAuth — 让 WordPress 的 OAuth 登录,一步到位。
