2.3 KiB
2.3 KiB
Matrix Synapse 批量注册账号
自动化批量注册 Matrix (Synapse) 用户账号。
文件
| 文件 | 说明 |
|---|---|
batch_register.py |
主脚本 |
config.json.example |
配置示例 |
users.csv.example |
用户列表示例 |
前置准备
1. 获取 Admin Token
登录 Matrix,获取 access token:
- Element Web: 设置 → 帮助与关于 → 访问令牌
- 或 API:
POST /_matrix/client/v3/login
2. 获取 registration_shared_secret
在 Synapse 的 homeserver.yaml 中:
registration_shared_secret: "你的密钥"
如果没有配置,需要先设置一个。
用法
批量注册
# 从 CSV 注册
python3 batch_register.py --config config.json --users users.csv
# 从 JSON 注册
python3 batch_register.py --config config.json --users users.json
# 干运行(先测试)
python3 batch_register.py --config config.json --users users.csv --dry-run
# 保存结果
python3 batch_register.py --config config.json --users users.csv --output results.json
单个用户注册
python3 batch_register.py --config config.json --single \
--username user1 --password pwd123 --display-name "用户一"
配置文件格式
config.json:
{
"server_url": "https://matrix.tphai.com",
"admin_token": "syt_xxx_yyy_zzz",
"shared_secret": "your_registration_shared_secret",
"default_password": "changeme123"
}
| 字段 | 说明 |
|---|---|
| server_url | Matrix 服务器地址 |
| admin_token | 管理员 access token |
| shared_secret | homeserver.yaml 中的 registration_shared_secret |
| default_password | 默认密码(用户未指定时使用) |
用户列表格式
CSV 格式
users.csv:
username,password,display_name,admin
user1,pass1,用户一,false
user2,pass2,用户二,false
admin1,pass3,管理员,true
JSON 格式
users.json:
[
{"username": "user1", "password": "pass1", "display_name": "用户一"},
{"username": "user2", "password": "pass2", "display_name": "用户二"},
{"username": "admin1", "password": "pass3", "display_name": "管理员", "admin": true}
]
工作原理
- 从 Admin API 获取 nonce
- 用 shared_secret 生成 HMAC 签名
- 调用
/_synapse/admin/v1/register注册用户 - 可选设置 display_name
黄庄4号程序员