WordPress登录/注册插件
插件简介
插件名称:Aurora Login
主要功能:为站点提供美观的前端登录/注册入口,支持导航栏按钮、页面嵌入短代码、弹窗模式、内置多种验证码、密码找回与重置,以及微信扫码快捷登录等。
适用场景:希望隐藏原生 wp-login.php,使用统一风格的前端登录/注册界面,减少用户跳转和登录门槛的站点。
核心特点
- 前端登录/注册 UI:统一的登录/注册卡片,两种预设风格,主按钮颜色可自定义。
- 导航右侧按钮:自动在主题导航栏右侧插入“登录 / 注册”按钮,未登录显示登录/注册,已登录显示用户名和“注销”。
- 短代码嵌入:通过
[aurora_login]可在任意页面直接嵌入登录/注册表单。 - 接管 wp-login.php:访问原生
wp-login.php时自动跳转到指定前端登录页。 - 多种验证码:内置算术验证码、直线滑块、拼图滑块等,增强安全性。
- 找回 + 重置密码:支持通过用户名或邮箱发送重置链接,在前端页面完成新密码设置。
- 微信登录:支持微信网站应用扫码登录(AppID/AppSecret/回调地址配置)。
- 协议勾选:注册前需勾选“同意用户协议与隐私政策”,并可配置对应 URL。
安装与启用wordpress登录/注册插件
安装步骤
方式一:后台上传 ZIP 包
- 进入后台 “插件 > 安装插件”。
- 点击 “上传插件”,选择 Aurora Login 的 ZIP 安装包。
- 点击 “现在安装”,安装完成后点击 “启用”wordpress登录/注册插件。
方式二:FTP / 文件管理器上传
- 将插件目录
aurora-login上传到wp-content/plugins/。 - 在后台 “插件 > 已安装插件” 中启用 Aurora Login。
启用后自动生效的行为
- 载入核心模块:资源加载、后台设置、认证逻辑、前端渲染等。
- 在
login_init钩子里接管wp-login.php,将登录请求重定向到前端登录页。 - 为未登录用户准备 AJAX 登录/注册/验证码接口,为已登录用户提供跳转与退出逻辑。
后台入口与整体结构
后台菜单入口
- 在后台左侧菜单进入 “设置 > Aurora Login”。
- 该页面使用多 Tab 布局,分为:
- 基础设置:导航按钮、显示方式、登录页面、标题和主按钮颜色。
- 功能设置:登录成功跳转、验证码类型、邮件发件邮箱、协议与隐私。
- 快捷登录:微信登录配置,以及 QQ/微博登录的占位开关。
基础设置
启用导航右侧按钮
- 启用导航右侧按钮:勾选后,插件会在主题的主导航菜单右侧自动添加按钮:
- 未登录:显示“登录”“注册”按钮(点击弹出登录/注册表单)。
- 已登录:显示当前用户昵称和“注销”按钮。
- 支持的
menu_location:primary、header、main、top、menu-1,其余菜单位置不会插入按钮。
前端显示方式
- 短代码页面模式(page):
- 在某个页面内容中插入短代码
[aurora_login]。 - 用户点击导航按钮时可跳转到该页面,在页面内直接显示登录/注册表单。
- 在某个页面内容中插入短代码
- 弹窗模式(modal):
- 不依赖特定页面,导航按钮会直接在当前页面弹出登录/注册弹窗。
- 适合 SPA 或无需单独登录页的站点。
登录短代码页面 URL
- 当显示方式为 短代码页面 时:
- 在一个页面内添加短代码
[aurora_login](例如新建“登录”页面)。 - 在此设置中填写该页面的 URL,例如:
https://example.com/login- 或站内路径
/login
- 在一个页面内添加短代码
- 如果留空:
- 插件会尝试寻找 slug 为
login的页面。 - 若不存在,则回退到
home_url('/login/')(即访问/login/)。
- 插件会尝试寻找 slug 为
顶部标题
- 顶部标题(header_title):登录/注册卡片顶部显示的标题文本。
- 可选:勾选“在前端显示顶部标题”,将其显示为“加入 Aurora”等营销文案。
- 留空时默认使用站点标题。
颜色设置
- 主按钮颜色(btn_color):登录/注册主按钮的背景色。
- 主按钮悬停颜色(btn_hover_color):鼠标悬停时的按钮背景色。
- 可通过颜色选择器或直接填写 HEX 颜色值(如
#2563eb)。
功能设置
登录/注册成功后的跳转规则
- 主页(home):成功后跳转到站点首页。
- 当前页(current):返回用户之前浏览的页面(通过
current_url参数实现)。 - 自定义 URL(custom):
- 填写一个完整的站内 URL(需以当前站点域名开头)。
- 例如:
https://example.com/dashboard。
验证码类型
- 内置算术验证码(math):
- 页面显示“a + b = ?”,用户需输入正确结果。
- 后端通过 transient 存储 token,对应答案验证后即销毁(一问一答)。
- 直线滑块(slider_line):
- 简单滑块控件,用户拖到终点即视为通过。
- 适合轻量防机器人场景。
- 拼图滑块(slider):
- 随机生成背景图与拼图块,用户拖动滑块拼合缺口。
- 后端使用 GD 库生成背景+缺口+拼图块图片,以 Base64 返回前端。
- 根据 token 和 X 坐标容差(默认约 ±12 像素)判断成功。
- Cloudflare Turnstile / reCAPTCHA:
- 当前版本属于预留选项,不实际调用外部服务,仅作为未来扩展入口。
找回密码发件邮箱
- mail_from:用于发送“重置密码”邮件的发件人邮箱。
- 建议与 SMTP 插件中配置的帐号一致,如:
you@example.com。 - 留空则使用站点管理员邮箱
admin_email。
协议与隐私
- 协议文本(agree_label):如“我已阅读并同意《用户协议》和《隐私政策》”。
- 协议 URL(agree_terms_url):跳转到用户协议页面的链接(例如
/terms)。 - 隐私 URL(agree_privacy_url):跳转到隐私政策页面的链接(例如
/privacy)。 - 注册时用户必须勾选“同意协议”,否则后端返回
agree_required错误。
快捷登录(微信 / QQ / 微博)
微信扫码登录
- 启用微信快捷登录:勾选后前端登录卡片上会显示“微信登录”按钮。
- AppID / AppSecret:来自微信开放平台网站应用的配置信息。
- 回调地址(Redirect):
- 需为 HTTPS 地址,如:
https://example.com/wp-login-wechat。 - 需在微信开放平台的同一网站应用中配置相同的回调域名。
- 需为 HTTPS 地址,如:
- 流程概要:
- 用户点击微信登录按钮 → 访问
?aurora_wechat=login→ 重定向至微信 QR Connect。 - 扫码后微信回调到
?aurora_wechat=callback→ 用code换access_token+openid/unionid。 - 插件根据
unionid/openid在 WP 中查找或创建用户,并自动登录。
- 用户点击微信登录按钮 → 访问
QQ / 微博快捷登录
- 当前版本中:
- 仅有 “启用 QQ 登录/微博登录” 开关,用于控制前端按钮显示。
- 具体 OAuth 流程尚未内置,仅作为后续扩展预留。
前端使用方式
导航按钮 + 弹窗
- 在启用导航按钮的情况下(且主题导航位置匹配),插件会自动在右侧插入:
- “登录”按钮(class:
al-open-login)。 - “注册”按钮(class:
al-open-register)。
- “登录”按钮(class:
- 点击按钮后,前端 JS 会在
#al-modal-root中渲染登录/注册卡片(使用模板login-style-2.php风格)。
短代码嵌入登录表单
- 在需要的页面内容中插入:
[aurora_login]
- 未登录用户:在页面中直接展示完整登录/注册 UI。
- 已登录用户:展示用户名 + 注销按钮,而不是表单。
重置密码页面短代码
- 新建一页,例如“重置密码”,内容填写短代码:
[aurora_reset_password]
- 并确保 URL 对应
/password-reset/(或根据代码中home_url('/password-reset/')调整)。 - 找回密码邮件中的重置链接格式约为:
https://example.com/password-reset/?key=xxx&login=用户名
- 访问该链接后会在前端显示设置新密码的表单。
接管原生 wp-login.php
- 用户访问
/wp-login.php:- 若 action 为
logout/lostpassword/rp/resetpass/postpass等白名单操作,则仍走原生流程。 - 否则若用户已登录:跳转到
admin_url('profile.php')(个人资料页)。 - 若未登录:跳转到配置的前端登录页(login_page / slug=login 页面 /
/login/)。
- 若 action 为
登录后的工具栏处理
- 插件在前端通过
show_admin_bar过滤器隐藏 WordPress 顶部黑色工具栏。 - 后台界面不受影响。
登录 / 注册 / 找回密码流程
登录流程
- 用户在登录表单中填写用户名和密码,完成验证码,点击“登录”。
- 前端通过 AJAX 调用
al_login: - 服务端校验:
- Nonce(防 CSRF)。
- 验证码(math/slider/slider_line)。
- 用户名和密码(
wp_signon)。
- 成功后返回
redirectURL,前端自动跳转。
注册流程
- 用户填写用户名、邮箱、密码,勾选同意协议与隐私;完成验证码后提交。
- 后端检查:
- Nonce 与验证码。
- 是否勾选协议(
agree_required)。 - 用户名是否为空或已存在(
bad_username)。 - 邮箱格式和唯一性(
bad_email)。 - 密码长度至少 6 位(
weak_password)。
- 通过后使用
wp_create_user创建账户,并自动登录当前会话。
找回密码(忘记密码)
- 在登录/找回密码表单中输入用户名或邮箱,完成验证码后提交。
- 服务器根据输入:
- 如果是邮箱:确认该邮箱有对应用户。
- 如果是用户名:确认用户名存在,且该用户绑定了有效邮箱。
- 调用
get_password_reset_key()生成重置 key,并构造重置链接。 - 通过
wp_mail发送邮件,发件人优先使用插件中配置的mail_from,否则用管理员邮箱。 - 用户收到邮件后,点击链接进入
/password-reset/?key=...&login=...页面,使用[aurora_reset_password]表单设置新密码。
常见问题与排错
1. 登录页面打不开 / 仍然跳到原生 wp-login.php
- 确认 Aurora Login 插件已启用。
- 检查是否开启了其它登录类插件,可能与本插件接管
login_init冲突。 - 在“基础设置”中配置正确的登录页面 URL,并确保该页面存在且包含
[aurora_login]短代码(对于 page 模式)。 - 访问
/wp-login.php时 URL 上是否存在action=lostpassword等白名单参数,这些由 WordPress 原生流程处理。
2. 导航栏没有显示登录/注册按钮
- 确认在“基础设置”中勾选了“启用导航右侧按钮”。
- 检查你的主题菜单位置是否为
primary、header、main、top或menu-1。 - 如果主题使用了自定义菜单渲染逻辑,可能绕过了
wp_nav_menu_items过滤器,可改在页脚使用兜底按钮,或手动添加按钮并绑定前端 JS 事件。
3. 验证码一直不通过 / 提示“请完成验证码”
- 确认浏览器未禁用 Cookie / 本地存储,内置算术验证码和滑块会用 transient 与前端 token 通信。
- 如果使用拼图滑块,确保服务器启用了 PHP GD 库,并存在
assets/images/original与assets/images/slidingBlock目录下的 PNG 资源。 - 检查站点是否使用强缓存/CDN,导致旧验证码图片被缓存,可尝试临时关闭缓存后再测试。
4. 找回密码邮件发送失败
- 在“功能设置”中配置与 SMTP 插件一致的发件邮箱
mail_from。 - 确认站点已配置正确的 SMTP 服务,能正常发送其它邮件(如注册通知)。
- 查看返回的错误代码:
mail_failed:表示wp_mail发送失败,检查服务器邮件日志或 SMTP 配置。not_supported:当前 WordPress 版本不支持密码重置接口。
5. 重置密码链接提示“无效或已过期”
- 重置链接包含
key和login参数,两者缺一不可。 - 链接可能被邮箱客户端自动换行或截断,请复制完整 URL 到浏览器地址栏访问。
- 链接有有效期,过期后需要重新在“忘记密码”页面申请新链接。
6. 微信登录失败
- 确认在“快捷登录”中正确填写了 AppID、AppSecret 和回调地址,并在微信开放平台中配置了相同的回调域名。
- 访问
?aurora_wechat=login时是否能正常跳转到微信授权页。 - 回调时如果看到 “state 校验不通过”,说明回调地址与最初 redirect 时不一致,或 state 过期;请确保同一浏览器窗口完成扫码流程。
- 查看服务器日志中是否有微信接口请求错误(如网络不通、证书问题等)。
7. 登录后仍显示未登录状态或跳转异常
- 确认浏览器允许设置 Cookie,WordPress 登录状态依赖 Cookie。
- 检查站点是否同时配置了子域/多域名,避免 Cookie 域不一致导致登录态丢失。
- 在“功能设置”中确认重定向 URL 合理,避免跳转到外站或不存在的页面。
建议
部署建议
- 在测试环境先完整跑一遍:注册 → 登录 → 退出 → 找回密码 → 重置密码。
- 结合 SMTP 插件配置好发件邮箱,确保重置密码邮件不会进垃圾箱。
- 准备好“用户协议”和“隐私政策”页面,并在设置中配置正确 URL。
安全建议
- 总是启用至少一种验证码(math / slider / slider_line)以防暴力破解。
- 建议设置密码最短长度 ≥ 6,并在系统提示词/文案中鼓励用户使用复杂密码。
- 默认隐藏前端管理员工具栏,减少暴露信息。
与其它插件共存
- 如已使用其它“前端登录/会员中心”插件,请避免同时接管
wp-login.php,以免冲突。 - 如果主题自带登录入口,可将其链接指向使用
[aurora_login]的页面,或绑定 JavaScript 调用 Aurora Login 弹窗。