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

Discord AuthBot

✅ Mengta 论坛官方售卖站点

mhya123

MhYa123❤️
管理成员
Admin
超级版主
版主
SVIP
Referrer
User
Advertisers
声誉:100%
注册
2024/12/09
消息
124
柚币
10,181.0Y
米币
310.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 最多查看 查看更多

相似主题

  • 红包主题
--- 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...
回复
3
查看
148
玄月验证是一款自带发卡系统和实时收款系统的验证授权系统 是市面上唯一一款采用go语言+mongo数据库写的网络验证 1. 可使用Linux系统部署 2. 集成模块对接和一键x86/x64成品 3. 可用用各种语言的对接包括但不限于(c/c++ js python c# java golang 易语言 H5)等各种语言 4. 具有高并发/高可用/大容量存储等特点 5...
回复
0
查看
106
项目地址: --- # 🎟️ Discord 工单机器人使用教程 一个支持按钮互动、日志记录、HTML 日志输出、频道归档的工单机器人。 --- ## ✅ 功能特色 - 创建技术支持/举报/投诉等多类型工单 - 只允许创建者与指定用户组查看频道内容 - 自动 @ 指定用户组,无需手动指派 - 日志以 HTML 格式存储,包含文字与图片 - 工单关闭后自动归档日志至指定频道 - Bot...
回复
0
查看
109
你们好,又是我,我又来更新了 ----V1.90更新日志---- 改进UI 更新Nixware参数 更新MEME参数 更新NL破解 更新stellarix 更新鲨鱼 更新鲨鱼参数 更新AWlua 更新stellarix官匹vac3.0参数(laowang自用顶参配上最近meme外部插件使用) 更新meme nl外部插件 更新易语言源码 添加账号密码本地验证(附源码) 简单改了一下辅助官网...
回复
6
查看
780
===== Minecraft服务端搭建教程 ===== 一、核心 1. 原版核心(Vanilla) ▸ 官方原生服务端 ▸ 优势:100%兼容原版特性,无需额外配置 ▸ 劣势:无插件/模组支持,性能最差 ▸ 适用场景:3-5人小规模原版生存 2. Spigot核心 ▸ 分支关系:CraftBukkit → Spigot ▸ 技术特性: - 优化实体运算逻辑 - 减少冗余区块加载 -...
回复
0
查看
132
后退
顶部 底部