feat: 添加纯 Token 认证模式 (Token Only Mode)

- 新增 TOKEN_ONLY_MODE 配置项,支持跳过 HMAC 签名验证
- 纯 Token 模式下只验证 token 参数,简化配置
- 添加 TOKEN_ONLY_MODE.md 详细文档
- 设置页面显示当前模式状态
- 更新 README.md 说明新功能
- config.example.json 添加 token_only_mode 配置项

适用于 TranspondSms 不支持签名的场景。
This commit is contained in:
OpenClaw Agent
2026-02-07 00:55:46 +00:00
parent a308989c3b
commit 1d886ce68d
7 changed files with 376 additions and 7 deletions

93
templates/base.html Normal file
View File

@@ -0,0 +1,93 @@
{% extends "base.html" %}
{% block title %}设置 - {{ config.app.name }}{% endblock %}
{% block content %}
<div class="container">
<div class="row">
<div class="col-md-8 offset-md-2">
<div class="card">
<div class="card-header">
<h3><i class="fas fa-cog"></i> 系统设置</h3>
</div>
<div class="card-body">
<h5>当前配置</h5>
<table class="table table-sm">
<tbody>
<tr>
<th>登录验证</th>
<td>{{ '启用' if login_enabled else '禁用' }}</td>
</tr>
<tr>
<th>纯 Token 模式</th>
<td>
{% if token_only_mode %}
<span class="badge badge-warning">启用</span>
<br><small class="text-muted">只验证 token跳过 HMAC 签名验证</small>
{% else %}
<span class="badge badge-success">禁用</span>
<br><small class="text-muted">标准模式Token + HMAC 签名验证</small>
{% endif %}
</td>
</tr>
<tr>
<th>HMAC 签名验证</th>
<td>{{ '启用' if sign_verify else '禁用' }}</td>
</tr>
</tbody>
</table>
<hr>
<h5>API Token 配置</h5>
<div class="table-responsive">
<table class="table table-striped">
<thead>
<tr>
<th>名称</th>
<th>Token</th>
<th>状态</th>
</tr>
</thead>
<tbody>
{% for token_item in api_tokens %}
<tr>
<td>{{ token_item.get('name', '未命名') }}</td>
<td><code>{{ token_item.get('token', '') }}</code></td>
<td>
{% if token_item.get('enabled') %}
<span class="badge badge-success">启用</span>
{% else %}
<span class="badge badge-secondary">禁用</span>
{% endif %}
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
<div class="alert alert-info">
<h6><i class="fas fa-info-circle"></i> 配置说明</h6>
<p class="mb-0">
要修改这些设置,请编辑 <code>config.json</code> 文件后重启服务。<br>
<strong>纯 Token 模式</strong>TranspondSms 只需要发送 token 参数即可,签名验证会被跳过。
适用于不使用 HMAC 签名的场景。
</p>
</div>
<div class="alert alert-warning">
<h6><i class="fas fa-exclamation-triangle"></i> 模式切换</h6>
<p class="mb-0">
<code>config.json</code> 中设置 <code>"security.token_only_mode": true</code> 启用纯 Token 模式。<br>
修改后需要重启服务:<code>./sms_receiverctl.sh restart</code>
</p>
</div>
</div>
</div>
</div>
</div>
</div>
{% endblock %}

View File

@@ -54,6 +54,10 @@
transition: background 0.3s;
}
.nav a.active {
background: #764ba2;
}
.nav a:hover {
background: #764ba2;
}