VerifyGuard - 企业微信二次验证与安全登录系统
项目概述
VerifyGuard 是一套专为适配企业微信(WeCom)环境而开发的二次身份验证与安全登录解决方案。该系统通过统一认证网关机制,为企业内部各类应用提供高效、安全且易于管理的用户登录支持,全面强化身份核验流程的安全性与可控性。
服务器准备与宝塔面板安装
建议选用配置为2核CPU、2GB或4GB内存的基础云服务器即可满足运行需求。部署初期需先安装宝塔面板以简化后续管理操作。
使用以下命令一键安装宝塔面板:
if [ -f /usr/bin/curl ];then curl -sSO https://download.bt.cn/install/install_panel.sh;else wget -O install_panel.sh https://download.bt.cn/install/install_panel.sh;fi;bash install_panel.sh ssl251104
安装完成后,系统将输出默认的登录地址、用户名及密码信息,请妥善记录并用于首次登录访问。
由于 VerifyGuard 基于 PHP 构建,您可在宝塔面板中进入网站管理模块,添加站点并绑定所需域名,随后将程序文件部署至对应根目录即可。
核心功能特性
多模式身份认证机制
- 支持邮箱或手机号接收验证码进行免密登录
- 传统账号密码登录方式兼容现有体系
- 集成企业微信 OAuth2.0 协议实现一键快速授权登录
双重验证流程设计
- 严格遵循企业微信官方安全规范
- 采用双因素身份核验策略,提升账户安全性
- 支持灵活配置验证触发条件和执行逻辑
完善的账号管理体系
- 可查看当前用户在线状态,并实时掌握活跃情况
- 提供账号启用/禁用控制功能,便于权限管理
- 支持强制下线异常或违规登录会话
便捷的信息查询服务
- 允许管理员自助查询企业微信用户的唯一账号ID
- 支持通过手机号或邮箱快速检索目标用户信息
- 提高运维响应效率,精准定位问题账户
功能丰富的管理后台
用户管理模块
- 展示完整的企业微信用户列表
- 支持批量导入、导出及操作用户数据
- 可查看每个用户的详细资料与权限设置
系统监控仪表盘
- 实时呈现系统运行状态与资源使用情况
- 生成可视化登录统计报表,辅助决策分析
- 集中展示登录日志,便于审计追踪
配置管理中心
- 在线编辑系统名称与全局显示参数
- 动态调整关键运行参数,无需重启服务
- 自定义版权信息内容,符合品牌规范
安全审计与行为追踪
- 完整记录管理员所有操作日志
- 持续追踪用户登录与访问行为轨迹
- 当检测到异常登录尝试时自动发出告警通知
安装与部署说明
运行环境要求
确保服务器具备以下基础环境配置:
- PHP 版本: 7.4 或更高
- Web 服务器: Nginx 或 Apache
- 数据库: MySQL 5.7+ 或 MariaDB 10.2+
- 操作系统: Linux/Windows Server
必需的 PHP 扩展
- OpenSSL 扩展 —— 加密通信支持
- cURL 扩展 —— 外部接口调用依赖
- PDO MySQL 扩展 —— 数据库连接驱动
- JSON 扩展 —— 数据格式处理
- MBString 扩展 —— 多字节字符串处理
推荐安装的扩展
- Redis 扩展:用于缓存会话数据,提升性能
- GD 库:支持图形化验证码生成
项目目录结构说明
了解标准目录布局有助于正确部署和维护系统:
verifyguard/
├── admin/ # 管理后台
│ ├── logs/ # 日志目录(需写入权限)
│ └── ...
├── api/ # API接口
│ ├── callback.php # 企业微信回调接口
│ └── ...
├── data/ # 数据存储目录(需写入权限)
├── config.php # 配置文件模板
├── index.php # 主入口文件
└── README.md # 说明文档
文件与目录权限设置
进入项目主目录后,执行如下命令完成权限配置:
# 切换到项目路径
cd /path/to/verifyguard
# 设置数据存储目录读写权限
chmod -R 755 data/
chmod -R 755 admin/logs/
根据所使用的Web服务器类型,赋予对应运行用户写入权限:
# 若使用 Apache(常见用户为 www-data 或 apache)
chown -R www-data:www-data data/
chown -R www-data:www-data admin/logs/
# 若使用 Nginx(常见用户为 nginx)
chown -R nginx:nginx data/
chown -R nginx:nginx admin/logs/
安全最佳实践建议
- 将敏感数据目录如
data/移出Web根目录,防止直接访问 - 定期归档并清理过期日志文件,避免磁盘占用过高
- 在PHP配置中限制上传文件大小,防范恶意上传风险
data/
配置文件初始化
首先复制示例配置文件为正式配置:
cp config.example.php config.php
然后编辑 config.php 文件,填写实际参数:
// 企业微信相关配置
class WeChatWorkConfig {
const CORP_ID = '您的企业ID'; // 企业微信 CorpID
const AGENT_ID = '您的应用AgentId'; // 应用唯一标识
const SECRET = '您的应用Secret'; // 应用密钥
const REDIRECT_URI = 'https://您的域名/auth/callback';
// 系统基本信息
const SYSTEM_NAME = 'VerifyGuard 安全登录系统';
const COPYRIGHT = '? 2024 您的公司名称';
// 安全策略设置
const ENABLE_2FA = true; // 是否开启二次验证
const SESSION_TIMEOUT = 7200; // 会话有效时长(秒)
// 邮件发送配置(用于验证码服务)
const SMTP_HOST = 'smtp.your-domain.com';
const SMTP_PORT = 587;
const SMTP_USER = 'noreply@your-domain.com';
const SMTP_PASS = 'your-smtp-password';
}
数据库连接配置
在配置类中设置数据库连接参数:
class DatabaseConfig {
const HOST = 'localhost'; // 数据库主机地址
const PORT = '3306'; // 数据库服务端口
const NAME = 'verifyguard_db'; // 目标数据库名
}
const USER = 'db_username'; // 数据库用户名
const PASS = 'db_password'; // 数据库密码
const CHARSET = 'utf8mb4'; // 字符集
企业微信配置指南
1. 前置准备事项
- 确保具备企业微信管理员权限
- 准备一个已完成工信部备案的域名(企业微信强制要求)
- 获取服务器的公网IP地址,用于网络连通性验证
2. 后台应用配置流程
步骤一:创建自建应用
- 登录企业微信管理后台 - 进入【应用管理】→【自建应用】模块 - 点击“创建应用”按钮
- 填写以下信息:
- 应用名称:VerifyGuard 安全登录
- 应用Logo:上传系统标识图像
- 应用介绍:简要描述其核心功能与用途
步骤二:获取关键凭证信息
在新建应用的详情页中,记录以下三项重要参数: - AgentId:该应用的唯一标识ID - Secret:应用密钥,请务必加密保存,避免泄露 - CorpID:企业身份ID,可在“我的企业”页面查看
步骤三:设置网页授权域名
- 在应用详情中找到【网页授权及JS-SDK】选项 - 点击“修改”并配置可信域名
https://your-domain.com
注意事项:
- 所填域名必须已完成ICP备案
- 必须支持HTTPS协议访问
- 确保DNS解析正确指向当前服务器IP
步骤四:启用二次验证机制
- 导航至【管理工具】→【安全与开发】→【二次验证】 - 点击“设置”按钮 - 输入二次验证页面的完整URL路径https://xxx/api/callback.php
- 保存配置以生效
步骤五:设定应用可见范围
- 回到应用详情页,定位到“可见范围”设置项
- 选择允许使用此系统的部门或指定成员
- 提交更改完成授权分配
3. 回调接口可用性验证
企业微信将自动发起回调测试,请确保满足以下条件: - 应用服务已部署至公网可访问环境 - HTTPS证书有效且未过期 - 回调接口地址能够正常响应请求用户使用说明
首次访问方式
方式一:通过企业微信内部访问- 在企业微信客户端点击对应的应用图标
- 系统自动跳转至登录认证页面
- 完成身份确认流程
- 进入主操作界面
- 打开任意浏览器,输入系统访问地址
- 选择登录方式:
- 企业微信一键登录(推荐)
- 验证码登录(支持手机或邮箱)
- 传统账号密码登录
登录方式详细说明
1. 企业微信快捷登录
适用场景:已在企业微信环境中登录的用户
操作流程:
- 点击“企业微信登录”按钮
- 授权应用获取基本用户信息
- 系统自动完成鉴权并跳转主页
2. 验证码登录
手机号登录流程:
- 输入注册手机号码
- 点击“获取验证码”
- 接收短信中的6位数字码
- 填写后提交完成登录
邮箱登录流程:
- 输入绑定邮箱地址
- 点击“获取验证码”
- 查收邮件并复制验证码
- 填入表单并登录
个人中心功能概述
成功登录后,用户可在个人中心执行以下操作: - 查看账户基本信息 - 更新个人资料(如头像、昵称等) - 浏览历史登录记录 - 管理已授权的登录设备 - 修改登录密码管理员操作手册
1. 管理员登录流程
- 访问专用后台入口地址https://xxx/admin/
- 使用管理员账号进行登录
- 默认账号信息请参考代码配置文件
config.php
- 首次登录建议立即修改初始密码以提升安全性
2. 用户管理功能
查看用户列表
- 进入【用户管理】→【用户列表】 - 显示所有已注册用户的详细信息 - 支持按部门和账号状态进行筛选查询用户状态控制
强制下线操作:
- 定位目标用户条目
- 点击“强制下线”按钮
- 确认执行操作
启用/禁用账号:
- 勾选需操作的一个或多个账号
- 点击“启用”或“禁用”按钮
- 可选填写操作原因备注
账号信息检索
- 进入【用户管理】→【账号查询】 - 输入手机号或邮箱地址 - 查询对应的用户在企业微信中的唯一ID3. 系统运行监控
仪表盘概览
- 登录后台后默认进入首页仪表板 - 实时展示关键运行指标:- 当前在线用户数量
- 当日累计登录次数
- 系统整体运行健康状态
- 异常登录行为告警提示
登录日志审计
- 进入【日志管理】→【登录日志】 - 查阅完整的用户登录历史 - 支持按照时间范围、用户账号、访问IP等维度筛选 - 可导出日志数据用于分析或存档4. 系统参数配置
全局基础设置
- 路径:【系统设置】→【基本配置】 - 可调整项目包括:- 系统显示名称
- 版权信息文本
- 登录页面视觉样式
- 会话超时时间(单位:分钟)
安全策略定义
- 路径:【系统设置】→【安全策略】 - 配置内容涵盖:- 是否开启二次验证
- 验证码有效时长
- 密码复杂度规则(长度、字符类型等)
- IP白名单限制设置
5. 日常运维任务
数据备份操作
定期执行数据库和配置文件备份,命令如下:# 手动导出数据库
mysqldump -u username -p verifyguard_db > backup_$(date +%Y%m%d).sql
# 备份当前配置文件
cp config.php config_backup_$(date +%Y%m%d).php
日志清理策略
为防止磁盘占用过高,应定期清理旧日志:# 删除30天前的所有日志文件
find admin/logs/ -name "*.log" -mtime +30 -delete
系统版本更新流程
- 从官方渠道下载最新版本包
- 备份现有程序文件与数据库
- 替换主程序文件,保留原有配置文件
- 如有提供更新脚本,需运行以完成结构升级
- 全面测试各项功能是否正常
常见问题排查
问题1:无法完成企业微信登录
可能原因:
- 企业微信后台配置存在错误
- 回调地址填写不准确
- 域名未备案或HTTPS证书无效
解决方案:
- 核对并修正相关配置项
config.php - 验证回调URL的可达性
- 确认域名已完成备案且SSL证书处于有效期内
问题2:验证码发送失败
可能原因:
- SMTP邮件服务配置有误
- 邮件服务商设置了发送限制
- 短时间内请求频率过高触发风控
解决方案:
- 检查邮件服务器连接参数
- 查阅邮件发送日志定位具体错误
- 适当延长验证码请求间隔时间
问题3:出现权限不足提示
可能原因:
- 目录归属或读写权限设置不当
- Web服务运行用户无对应写入权限
解决方案:
# 修复数据目录权限
chown -R www-data:www-data data/
chmod -R 755 data/
问题4:数据库连接失败
可能原因:
- 数据库服务未启动
- 连接参数(用户名、密码、主机地址)错误
- 网络不通或防火墙阻止访问
- 数据库最大连接数已达上限
常见问题及解决方案:
数据库相关问题
可能出现的问题包括数据库配置不正确、数据库服务未正常启动或网络连接异常。
对应的解决方式如下:
- 核实数据库的配置参数是否准确
- 确保数据库服务处于运行状态
- 进行网络连通性测试以排除连接故障
日志文件位置说明
系统日志:
admin/logs/system_YYYYMMDD.log错误日志:
admin/logs/error_YYYYMMDD.log访问日志:通常位于Web服务器的日志目录中
故障排查建议
- 详细查阅本指南及相关说明文档
- 检查错误日志,获取具体的错误信息以便定位问题
- 如问题仍未解决,可前往项目社区发帖提问
对于严重或紧急的技术问题,可直接联系开发团队寻求支持。
参与项目贡献
我们欢迎用户通过以下步骤提交 Issue 或 Pull Request:
1. Fork 项目仓库
2. 创建新的功能分支
3. 提交您的修改内容
4. 发起 Pull Request 合并请求
项目仓库地址:https://cnb.cool/cqbkxx.cn/VerifyGuard



雷达卡


京公网安备 11010802022788号







