UID登录插件(oy_uid_login)

UID登录插件(oy_uid_login)

插件简介

本插件为 XiunoX 论坛系统提供通过用户 UID 登录的功能。在原有的邮箱/用户名登录基础上,新增 UID 登录方式,用户可直接输入 UID 号码和密码完成登录。

  • 插件名称:UID登录

  • 版本:1.0.0

  • 适配 XiunoX 版本:1.0

  • 插件作者:欧阳博客(www.oyzm.cn

功能用途

  • 在登录页面的邮箱输入框中,用户除了可以输入邮箱、用户名外,还可以直接输入 UID 号码进行登录

  • 自动检测输入内容是否为纯数字且大于 0,若是则按 UID 方式处理登录逻辑

  • 登录流程完整包含:IP 黑名单检查、验证码检查、IP 限流检查、UID 维度锁定检查、密码验证、封禁检查

  • 用户不存在时统一返回"用户名或密码错误",避免 UID 枚举攻击

  • 登录成功后自动更新登录时间、登录 IP、登录次数,并设置 Session 和 Token

  • 登录页面的输入框 placeholder 自动更新为"邮箱 / 用户名 / UID"提示

安装说明

  1. oy_uid_login 文件夹上传至 XiunoX 的 plugin/ 目录

  2. 登录后台,进入「插件管理」

  3. 找到「UID登录」插件,点击「安装」

  4. 安装完成后,插件自动启用,无需额外配置

  5. 前台登录页面即可使用 UID 登录

卸载说明

  1. 登录后台,进入「插件管理」

  2. 找到「UID登录」插件,点击「卸载」即可

插件文件列表

oy_uid_login/
├── conf.json                          # 插件配置文件(名称、版本、钩子注册等)
├── hook/
│   ├── user_login_post_start.php      # 核心:拦截登录请求,实现 UID 登录逻辑
│   ├── user_login_email_after.htm     # 前端:修改登录页输入框 placeholder 提示文字
│   ├── lang_zh_cn_bbs.php            # 简体中文语言包
│   ├── lang_zh_tw_bbs.php            # 繁体中文语言包
│   └── lang_en_us_bbs.php            # 英文语言包

各文件功能说明

文件

说明

conf.json

插件元信息,注册钩子及优先级,声明依赖关系

hook/user_login_post_start.php

核心逻辑,在登录请求处理前拦截,判断输入是否为 UID 并执行完整的登录验证流程

hook/user_login_email_after.htm

在登录页邮箱输入框后注入 JS 脚本,将 placeholder 修改为包含 UID 提示的文字

hook/lang_zh_cn_bbs.php

简体中文语言项定义

hook/lang_zh_tw_bbs.php

繁体中文语言项定义

hook/lang_en_us_bbs.php

英文语言项定义

安全说明

  • UID 登录流程与系统原生登录流程保持一致的安全检查标准

  • 包含 IP 黑名单检查、验证码校验、IP 限流、UID 维度锁定等安全机制

  • 用户不存在时返回与密码错误相同的提示信息,防止 UID 枚举

  • 登录成功后自动 session_regenerate_id(true) 防止会话固定攻击

兼容性

  • 无额外依赖,不依赖其他插件

  • 不覆盖任何系统文件,通过钩子机制实现功能扩展

  • 支持简体中文、繁体中文、英文三种语言

友情链接

解压密码:

请登录后查看此内容
已有 4 人解锁

oy_uid_login.zip 12.1KB
最新回复
  • 小九 Lv1
    这个可以
    14天前
  • 哆哆 2级用户开发者 Lv2
    不错不错
    14天前
  • Laity 内测用户站长3级用户 Lv3

    登陆的语言包不加载好像

    12天前
    欧阳 Lv2 作者 回复@Laity
    注释写错了,请将lang_zh_cn_bbs.php文件上部分的注释删掉即可。
    8天前
    Laity Lv3 回复@欧阳
    好的。
    8天前
  • AI Lv1

    @Laity 感谢反馈。该插件通过 hook 机制加载语言文件,理论上应随登录页一同加载。若未生效,可能原因如下:

    1. 钩子优先级:检查 conf.jsonuser_login_post_start 的优先级,确保在语言加载之后或正确介入。
    2. 缓存问题:尝试清除论坛缓存及浏览器缓存,确认语言包是否被正确读取。
    3. 调试方法:可在 lang_zh_cn_bbs.php 中临时添加 var_dump('loaded'); exit; 测试文件是否被调用。若未输出,说明钩子未触发或路径错误;若已输出但界面无变化,可能是前端 JS 未重新渲染 placeholder。

    请提供 PHP 版本、MySQL 版本及浏览器信息,以便进一步排查。【以上由 AI 自动回复,仅供参考】

    11天前
  • 支持一下
    7天前
  • 欧阳 Lv2 作者
    │   ├── lang_zh_cn_bbs.php            # 简体中文语言包
    │   ├── lang_zh_tw_bbs.php            # 繁体中文语言包
    │   └── lang_en_us_bbs.php            # 英文语言包
    如遇到语言包问题,请将三个语言包顶部的注释删除即可。
    7天前
  • 支持支持支持支持
    6天前

请先登录后再回复 登录

uid:83 Lv2
关注
发帖 11
评论 38
粉丝 0
关注 0
发新帖
目录
UID登录插件(oy_uid_login)