cover

邮箱验证激活 功能扩展

用户注册后需点击邮件中的验证链接才能激活账号


购买 / 收藏:请先登录


开发者:慕呱博客

无代码加密 无额外授权 版本号:1.0.6 适配PHP:74+

插件介绍

邮箱注册验证激活 是一款专为 Emlog Pro 博客系统开发的安全插件。用户完成注册后,账号会自动锁定,系统向其注册邮箱发送一封带有专属验证链接的邮件,用户点击链接后账号方可激活登录。有效防止虚假邮箱注册、垃圾账号泛滥,提升社区质量。

后台截图

注册后邮箱验证

用户提交注册表单后,系统自动完成以下流程:

  1. 账号创建并立即锁定(state = 1)
  2. 生成唯一、加密强度的验证 Token(random_bytes(32))
  3. 向注册邮箱发送 HTML 验证邮件(携带含 Token 的激活链接)
  4. 用户点击链接 → Token 校验通过 → 账号自动解锁激活

安全特性

  • Token 基于 random_bytes(32) 生成,不可猜测
  • Token 使用一次后立即销毁
  • Token 过期自动清理,默认有效期 24 小时
  • 注册完成后立即刷新用户缓存,防止缓存绕过登录
请先登录, 再发布评论

  • 1.0.6
    5个月前

    新增
    管理员手动通过验证运行统计 → 待验证列表中,每条记录新增「通过验证」按钮,管理员可一键手动将用户标记为已验证

  • 1.0.5
    5个月前

    新增
    邮箱域名黑名单功能,支持在插件设置中添加禁止注册的邮箱域名
    在用户注册页面的邮箱输入框中实现实时黑名单检测,输入邮箱后自动检测域名状态并显示警告信息
    黑名单检测命中时,自动禁用提交按钮和发送验证码按钮,防止用户继续操作

  • 1.0.4
    5个月前

    优化一些细节

  • 1.0.3
    5个月前

    新增
    全局 AJAX 自动拦截功能:自动拦截所有模板的 AJAX 登录错误响应,无需修改任何模板文件即可生效。检测到需要验证时,将自动跳转至待验证提示页,提升用户体验。
    优化
    Token 有效期设置优化:新增「秒 / 分钟 / 小时」单位选择器,配置更加灵活直观。同时支持最低限制自动修正(秒最低 600 秒、分钟最低 10 分钟、小时最低 1 小时)。
    修复
    前台模板登录拦截失效问题:统一使用标准机制处理登录拦截,确保逻辑正常生效。登录验证函数新增 AJAX 请求检测,兼容 JSON 响应和普通表单提交两种模式;AJAX 场景下返回规范的 JSON 错误响应,保持系统格式一致。

  • 1.0.2
    6个月前

    新增
    验证成功提醒邮件:用户完成邮箱验证后,系统自动发送激活通知。后台支持一键开关、自定义邮件标题与模板(内置精美默认样式),并支持 {blogname}、{username} 等多种占位变量。
    未激活账号登录拦截:新增 login_begin 钩子,配合 login_fail 形成双重拦截机制。未激活用户登录时自动跳转至友好提示页,显示注册邮箱并支持自助重发验证邮件。
    优化
    登录体验提升:完善登录拦截逻辑,优化待验证用户在登录环节的交互流程。
    代码结构升级:重构底层代码,显著增强了登录拦截机制的可靠性与稳定性。
    修复
    修复了未激活账号在特定场景下可能绕过验证直接登录的安全隐患。

  • 1.0.1
    6个月前

    修复已知问题

  • 1.0.0
    6个月前

    初始版本
    邮箱验证激活:注册后账号锁定,通过唯一验证链接激活
    · 安全 Token:随机生成,有效期 24 小时,一次有效,自动清理过期
    · 重发验证:支持冷却时间,接口不泄露邮箱存在性
    · 登录拦截:未验证用户自动跳转待验证页,可重发邮件
    · 邮件模板:响应式 HTML,兼容各类客户端
    · 前台页面:验证结果、重发表单等,适配移动端
    · 后台管理:插件设置(有效期/冷却/模板)与运行统计
    · 自动识别站点 URL,确保链接完整
    · 日志记录:验证信息保留 500 条,自动轮转