WP-Omni-Auth:全能 OAuth 登录插件

⭐ 如果这个项目对你有帮助,请给它一个 Star!⭐

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

更重要的是,它不止是一个登录插件。它还内置了 IP 黑名单/限流/自动封禁登录历史统计调试日志紧急访问后门数据导出/恢复等企业级功能,全部在一个统一的设置界面中完成。

平台地区
GitHub全球
Google全球
Apple全球
Microsoft全球
WeChat(微信)中国
Weibo(微博)中国
……..
所有内置提供商即开即用,只需填入各平台的 Client ID 和 Client Secret。

核心功能

多个 内置提供商

覆盖国内外主流平台,一个插件解决所有第三方登录需求。

无限自定义提供商

通过后台”自定义提供商”功能,可以添加任何符合 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
  • 开发测试环境:快速接入多种第三方登录做测试

安装方式

方式一:后台直接安装(推荐)

  1. 下载 ZIP 包
  2. WordPress 后台 → 插件 → 安装插件 → 上传插件
  3. 选择 ZIP 文件 → 立即安装 → 启用
  4. 进入 设置 → WP-OmniAuth 配置提供商

方式二:手动安装

  1. 将 ZIP 解压到 /wp-content/plugins/wp-omni-auth/
  2. 在插件管理页面启用
  3. 进入 设置 → WP-OmniAuth 配置

快速开始

本文档包含了 WP-OmniAuth 插件所有内置 OAuth 提供商的配置教程。 (如有疏漏请及时提醒~)

注意:每个 provider 的回调 URL 格式为: https://your-site.com/wp-login.php?wpomni_callback={slug}

GitHub

回调 URLhttps://your-site.com/wp-login.php?wpomni_callback=github

步骤:

  1. 前往 GitHub Developer Settings 并点击 “New OAuth App”
  2. 填写表单:Application name 可任意填写(如站点名称),Homepage URL 填站点 URL,Authorization callback URL 必须填写回调 URL
  3. 点击 “Register application”
  4. 在应用页面复制 Client ID 粘贴到插件的 Client ID 字段
  5. 点击 “Generate a new client secret”,复制后粘贴到 Client Secret 字段
  6. 勾选 “Enable” 并保存

注意事项:

  • 如果站点使用 Cloudflare,回调必须直接访问 wp-login.php,可能需要创建 Page Rule 绕过缓存
  • 默认 scope user:email 足够使用

Google

回调 URLhttps://your-site.com/wp-login.php?wpomni_callback=google

步骤:

  1. 前往 Google Cloud Console 创建新项目(或选择已有项目)
  2. 导航到 APIs & Services > OAuth consent screen,选择 “External” 用户类型,填写必要信息并添加邮箱为测试用户
  3. 导航到 APIs & Services > Credentials,点击 “Create Credentials” > “OAuth client ID”
  4. 选择 “Web application” 作为应用类型
  5. 在 “Authorized redirect URIs” 下添加回调 URL
  6. 点击 “Create”,复制 Client ID 和 Client Secret 粘贴到插件字段
  7. 勾选 “Enable” 并保存

注意事项:

  • 如果 Google 账户处于 “testing” 模式,只有添加的测试用户可以登录
  • 默认 scope openid email profile 推荐使用
  • 如果站点使用 Cloudflare,需创建 Page Rule 绕过缓存

Apple

回调 URLhttps://your-site.com/wp-login.php?wpomni_callback=apple

步骤:

  1. 前往 Apple Developer – Identifiers
  2. 创建一个服务 ID(Service ID,不是 App ID),启用 “Sign in with Apple”
  3. 配置 Return URL 为回调 URL
  4. 复制服务 ID 粘贴到插件的 Service ID 字段
  5. 创建一个密钥(Key)→ 启用 “Sign in with Apple” → 下载 .p8 文件
  6. 粘贴 Key ID 和 .p8 内容到插件字段。在 Membership 中查找 Team ID
  7. 勾选 “Enable” 并保存

注意事项:

  • 需要付费的 Apple 开发者账号($99/年)
  • Apple 仅在首次授权时提供真实邮箱,后续登录可能返回私有中继邮箱
  • ES256 签名需要 OpenSSL PHP 扩展

Microsoft

回调 URLhttps://your-site.com/wp-login.php?wpomni_callback=microsoft

步骤:

  1. 前往 Azure Portal – App registrations 并点击 “New registration”
  2. 填写 Name,选择合适的 Supported account types
  3. 在 Redirect URI 中选择 “Web” 并输入回调 URL
  4. 点击 “Register”,复制 Application (client) ID
  5. 进入 Certificates & secrets → “New client secret”,复制生成的 Secret Value
  6. 勾选 “Enable” 并保存

注意事项:

  • “common” 允许个人和组织账户
  • Client secrets 有过期时间,需在到期前轮换(最长 2 年)

WeChat(微信)

回调 URLhttps://your-site.com/wp-login.php?wpomni_callback=wechat

步骤:

  1. 前往 微信开放平台 创建网站应用
  2. 填写应用信息,设置授权回调域为你的域名(无协议无路径)
  3. 审核通过后复制 AppID 和 AppSecret
  4. 勾选 “Enable” 并保存

注意事项:

  • 微信开放平台需要企业认证,审核约 1-7 天
  • 回调域只需填写域名(例如 example.com),不含 https:// 和路径
  • 使用扫码登录,用户需在微信中扫描

Weibo(微博)

回调 URLhttps://your-site.com/wp-login.php?wpomni_callback=weibo

步骤:

  1. 前往 微博开放平台 创建网站应用
  2. 填写应用信息,设置授权回调页为回调 URL
  3. 审核通过后复制 App Key 和 App Secret
  4. 勾选 “Enable” 并保存

注意事项:

  • 微博 OAuth 不返回用户邮箱,插件会从用户 ID 合成稳定的伪邮箱

Feishu(飞书)

回调 URLhttps://your-site.com/wp-login.php?wpomni_callback=feishu

步骤:

  1. 前往 飞书开放平台 创建自建应用
  2. 在安全设置中添加重定向 URL 为回调 URL
  3. 从凭证页面复制 App ID 和 App Secret
  4. 添加权限:contact:user.email:readonly 和 contact:user.id:readonly
  5. 发布应用版本并等待审核通过,勾选 “Enable” 并保存

注意事项:

  • 飞书 OAuth 不使用标准 scope,权限在管理后台控制
  • 邮箱需要企业管理员授权
  • 国际版(Lark)需要在设置中将 Region 切换为 International

Gitee(码云)

回调 URLhttps://your-site.com/wp-login.php?wpomni_callback=gitee

步骤:

  1. 前往 Gitee Applications 点击 “Create App”
  2. 设置 Callback URL 为回调 URL
  3. 复制 Client ID 和 Client Secret
  4. 勾选 “Enable” 并保存

注意事项:

  • Gitee 是国内平台,无需代理
  • 默认 scope “user_info emails” 获取用户信息和邮箱

DingTalk(钉钉)

回调 URLhttps://your-site.com/wp-login.php?wpomni_callback=dingtalk

步骤:

  1. 前往 钉钉开放平台 创建扫码登录应用
  2. 在登录与分享中添加回调 URL
  3. 复制 AppKey 和 AppSecret
  4. 勾选 “Enable” 并保存

注意事项:

  • 钉钉使用扫码登录,用户需在钉钉 App 中扫描
  • 需创建”扫码登录应用”,而非”企业内部应用”

Authentik

回调 URLhttps://your-site.com/wp-login.php?wpomni_callback=authentik

步骤:

  1. 前往 Authentik 管理后台 → Applications → Providers → Create → 选择 “OAuth2/OpenID Provider”
  2. 设置 Redirect URI 为回调 URL
  3. 设置 Client type 为 “Confidential”,复制自动生成的 Client ID 和 Client Secret
  4. 创建 Application 并关联到该 Provider
  5. 在插件中粘贴 Client ID、Client Secret 和 Authentik 实例 URL
  6. 检查 Scope 是否包含 openid email profile(默认即可)
  7. 勾选 “Enable” 并保存

注意事项:

  • Authentik 是自建身份提供商,支持 OIDC 和 SAML
  • 实例 URL 应填写 Authentik 的访问地址,例如 https://auth.example.com(不带尾部斜杠)
  • 如果应用要求信息签名,需在 Authentik 中指定 Signing Key
  • 授权流程可选 explicit-consent(需用户确认)或 implicit-consent(自动授权)

Custom Provider(通用自定义)

回调 URLhttps://your-site.com/wp-login.php?wpomni_callback={your-slug}

步骤:

  1. 在 OAuth provider 中注册新应用,设置 Redirect/Callback URL 为回调 URL
  2. 复制 Client ID 和 Client Secret 粘贴到插件字段
  3. 查找 provider 的 OAuth 文档,填写 Authorization URL、Token URL 和 User Info URL
  4. 设置 Email Field 为用户信息响应中包含邮箱的 JSON key(默认 email
  5. 如果 provider 要求以 query parameter 而非 Bearer header 传递 token,取消勾选 “Token in Header”
  6. 如果 token 响应使用非标准 key(非 access_token),设置 Token Response Key
  7. 勾选 “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 登录,一步到位。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
B站基础表情
B站节日表情
B站游戏表情
B站活动表情
上一篇