• 游客 你好!
    ✿ MoeBBS 全部交流群公示 ✿
    诋毁本身就是一种仰望👑
  • 论坛资源声明
    1.本论坛所有资源均由用户自行发布,版权归原作者所有,未经允许,禁止非法转载、复制或用于商业用途。
    2.若您认为论坛中的任何资源侵犯了您的合法权益(如版权、肖像权等),请提供相关证明材料通过站内信,邮箱或工单与我们联系,我们将在核实后尽快处理或移除相关内容。
    3.本论坛无法100%保证用户发布内容的准确性、完整性或合法性,使用相关资源前请您自行甄别其风险与适用性,后果由使用者自行承担。
mhya123

Discord AuthBot

这是隐藏的内容

mhya123

MhYa123❤️
管理成员
Admin
超级版主
版主
SVIP
Referrer
VIP
User
知名社区开发者
Advertisers
License
声誉:100%
注册
2024/12/09
消息
154
柚币
13,456.2Y
米币
337.0M
Discord AuthBot

一个功能完整的 Discord 身份验证机器人,支持外部API认证、双语界面、权限管理和持久化存储。

注意!API接口只适配本论坛

✨ 主要功能

🔐 身份认证系统

  • 外部API登录 - 通过外部认证API验证用户身份
  • 安全Modal界面 - 私密输入用户名和密码,不在频道中暴露
  • 自动角色分配 - 验证成功后自动授予指定角色
  • 昵称同步 - 将用户昵称更新为API返回的用户名
  • 防重复验证 - 已验证用户无法重复认证

🌍 多语言支持
  • 中英双语 - 完整的中文和英文界面
  • 动态切换 - 用户可随时选择显示语言
  • 本地化消息 - 所有用户交互均支持多语言

🛡️ 权限管理
  • 智能频道控制 - 自动配置验证频道和其他频道的权限
  • 角色层级管理 - 基于@everyone和Verified角色的权限模型
  • 管理员命令 - 管理员可撤销用户验证状态

💾 数据持久化
  • JSON存储 - 验证记录和语言偏好持久化保存
  • 原子写入 - 防止数据损坏的安全写入机制
  • 自动初始化 - 首次运行自动创建数据文件

🎯 基础命令
  • /basic ping - 测试机器人响应
  • /basic echo [text] - 回显用户输入
  • /basic help - 显示帮助信息

🚀 快速开始

1. 环境准备

代码:
# 克隆项目
https://github.com/mhya123/DiscordAuthBot.git
cd authbot

# 创建并激活虚拟环境
python -m venv .venv
.\.venv\Scripts\Activate.ps1

# 安装依赖
pip install -r requirements.txt

2. 配置环境
复制 [.env.example] 为 [.env] 并配置以下变量:

代码:
# Discord Bot Token (必需)
DISCORD_TOKEN=your_bot_token_here

# 认证API配置
AUTH_API_BASE=https://auth.hvhbbs.cc

# 可选配置
GUILD_ID=123456789012345678
AUTH_SUCCESS_ROLE=Verified
AUTH_CHANNEL_NAME=auth-verify
AUTH_LOGIN_CHANNEL_ONLY=true
AUTH_HIDE_OTHER_CHANNELS=true
LOG_LEVEL=INFO
AUTH_DATA_FILE=./data.json

3. 运行机器人
代码:
# 推荐方式:直接运行
python .\run.py

# 或者模块方式运行
$env:PYTHONPATH = "$PWD/src"
python -m authbot

首次运行 Slash 命令可能需要数分钟在服务器中同步,请在 Discord 客户端中等待命令出现或尝试重新输入。

📋 命令详解

管理员命令

/auth setup

  • 功能: 初始化认证系统
  • 权限: 需要管理员权限
  • 效果:
    • 创建Verified角色
    • 创建或更新auth-verify频道
    • 配置频道权限(未验证用户只能看到验证频道)
    • 发送语言选择消息

/auth revoke [member]
  • 功能: 撤销用户验证状态
  • 权限: 需要管理员权限
  • 效果:
    • 移除用户的Verified角色
    • 清除数据库中的验证记录
    • 可选择添加Unverified角色

用户命令

/auth login

  • 功能: 打开登录验证界面
  • 限制:
    • 默认只能在验证频道使用
    • 已验证用户无法重复使用
  • 流程:
    • 弹出安全登录Modal
    • 用户输入用户名/邮箱和密码
    • 调用外部API验证
    • 验证成功后分配角色和更新昵称
[/list]

🔧 技术架构

项目结构

代码:
authbot/
├── src/authbot/
│   ├── __init__.py
│   ├── __main__.py
│   ├── main.py
│   ├── commands.py
│   ├── auth_commands.py
│   ├── auth_api.py
│   ├── i18n.py
│   ├── prefs.py
│   └── storage.py
├── requirements.txt
├── run.py
├── .env.example
└── README.md

依赖库
  • discord.py (2.x) - Discord API 封装
  • python-dotenv (1.x) - 环境变量管理
  • httpx (0.27) - 异步HTTP客户端

核心组件

AuthAPI (auth_api.py)

  • 处理外部认证API调用
  • 支持POST请求到 {base}/?action=login
  • 返回包含状态码的JSON响应
  • 自动处理各种HTTP错误情况

国际化系统 (i18n.py)
  • 基于字典的多语言支持
  • 支持占位符和参数化消息
  • 自动降级到默认语言

权限模型
  • @everyone: 只能看到验证频道
  • Verified角色: 可以访问所有频道并发言
  • 频道权限: 自动配置分类和频道的查看/发言权限

🛠️ 开发指南

添加新命令

代码:
@app_commands.command(name="example", description="示例命令")
async def example(self, interaction: Interaction):
    await interaction.response.send_message("示例响应", ephemeral=True)

添加多语言文本
代码:
"new_message": {
    "zh": "中文消息",
    "en": "English message",
},

日志记录
代码:
import logging
log = logging.getLogger("authbot.module_name")
log.info("信息日志")
log.warning("警告日志")

🔍 故障排除

常见问题

Q: 机器人启动后看不到斜杠命令?

  • 确保机器人有 applications.commands 权限
  • 首次同步可能需要几分钟,请耐心等待
  • 检查 GUILD_ID 设置是否正确

Q: 认证API调用失败?
  • 检查 AUTH_API_BASE 是否正确配置
  • 确认API端点支持 POST 请求到 /?action=login
  • 查看日志中的详细错误信息

Q: 无法分配角色或修改昵称?
  • 确保机器人角色在服务器角色列表中位置足够高
  • 检查机器人是否有 Manage Roles 和 Manage Nicknames 权限

Q: 权限设置不生效?
  • 确认机器人有 Manage Channels 权限
  • 检查频道权限是否被其他设置覆盖
  • 查看控制台日志中的权限设置警告

调试模式
设置 LOG_LEVEL=DEBUG 获取详细的调试信息:
代码:
LOG_LEVEL=DEBUG

📄 许可证
本项目使用 MIT 许可证。详情请参见 LICENSE 文件。

🤝 贡献
欢迎提交 Issue 和 Pull Request!

📞 支持
如需帮助,请:
  • 查看本README文档
  • 检查日志输出中的错误信息
  • 在GitHub上提交Issue

代码:
来自 WWW.HVHBBS.CC | MhYa123
 
Similar content 最多查看 查看更多

相似主题

  • 红包主题
Discord JM漫画下载器 这是一个基于 Discord.py 的 JM 漫画下载机器人。 📦 快速开始 🔗 项目链接 • GitHub仓库:• 问题反馈:• 功能建议:功能特性 • 🔍 指定ID下载: 使用 /jm <ID> 下载指定ID的漫画 • 🎲 随机下载: 使用 /jmr 在配置范围内随机下载漫画 • 📁 文件缓存: 自动检测已下载的文件,避免重复下载 • 📄 PDF转换...
回复
1
查看
193
  • 红包主题
--- Powered by Sukairain X ChatGPT o3-mini X Deepseek 在你的xenForo论坛使用请遵守MIT的开源规则 ### **一、服务器环境准备** ```bash # 1. SSH 登录服务器 ssh your_username@your_server_ip -p 22 # 2. 进入 XenForo 安装目录(根据实际情况调整) cd...
回复
4
查看
255
玄月验证是一款自带发卡系统和实时收款系统的验证授权系统 是市面上唯一一款采用go语言+mongo数据库写的网络验证 1. 可使用Linux系统部署 2. 集成模块对接和一键x86/x64成品 3. 可用用各种语言的对接包括但不限于(c/c++ js python c# java golang 易语言 H5)等各种语言 4. 具有高并发/高可用/大容量存储等特点 5...
回复
0
查看
160
项目地址: --- # 🎟️ Discord 工单机器人使用教程 一个支持按钮互动、日志记录、HTML 日志输出、频道归档的工单机器人。 --- ## ✅ 功能特色 - 创建技术支持/举报/投诉等多类型工单 - 只允许创建者与指定用户组查看频道内容 - 自动 @ 指定用户组,无需手动指派 - 日志以 HTML 格式存储,包含文字与图片 - 工单关闭后自动归档日志至指定频道 - Bot...
回复
0
查看
182
📝 更新日志(2025-10-26) 功能优化 优化下载限制功能的提示语,使说明更加清晰易懂。 功能升级 新增「强制点赞/回复后下载附件」机制: 用户需点赞或回复后才能下载附件。 支持查看 BBCode 代码标签,并防止删除点赞/反应记录。 回复帖中的附件同样需点赞后才能下载。 问题修复 修复已知问题,优化整体性能与用户体验。
回复
1
查看
78
后退
顶部 底部