diff --git a/ZhiKongTaiWeb/index.html b/ZhiKongTaiWeb/index.html
index f7809c0c..eeb38d33 100644
--- a/ZhiKongTaiWeb/index.html
+++ b/ZhiKongTaiWeb/index.html
@@ -1,26 +1,27 @@
-
-
-
-
+
+
+
+
智控台
-
-
-
-
-
+
+
+
+
+
diff --git a/ZhiKongTaiWeb/public/favicon.ico b/ZhiKongTaiWeb/public/favicon.ico
new file mode 100644
index 00000000..2e4ba64e
Binary files /dev/null and b/ZhiKongTaiWeb/public/favicon.ico differ
diff --git a/ZhiKongTaiWeb/src/assets/favicon.ico b/ZhiKongTaiWeb/src/assets/favicon.ico
new file mode 100644
index 00000000..2e4ba64e
Binary files /dev/null and b/ZhiKongTaiWeb/src/assets/favicon.ico differ
diff --git a/core/utils/util.py b/core/utils/util.py
index 4cd3862b..0c1b5b6e 100644
--- a/core/utils/util.py
+++ b/core/utils/util.py
@@ -105,7 +105,7 @@ def check_password(password):
:return: 如果密码满足条件,则返回True;否则返回False。
"""
# 检查密码长度
- if len(password) < 10:
+ if len(password) < 8:
return False
# 检查是否包含英文字符和数字
@@ -116,7 +116,7 @@ def check_password(password):
if "xiaozhi" in password:
return False
- if "123456" in password:
+ if "1234" in password:
return False
# 如果满足所有条件,则返回True
diff --git a/manager/api/register.py b/manager/api/register.py
index 6127b849..ae386e52 100644
--- a/manager/api/register.py
+++ b/manager/api/register.py
@@ -1,9 +1,11 @@
import logging
from aiohttp import web
import datetime
+from core.utils.util import check_password
logger = logging.getLogger(__name__)
+
class RegisterHandler:
def __init__(self, config):
self.config = config
@@ -15,18 +17,32 @@ class RegisterHandler:
username = data.get('username')
password = data.get('password')
+ if not check_password(password):
+ return web.json_response({
+ 'success': False,
+ 'message': '密码必须包含大小写字母、数字且长度至少8位'
+ })
+
if not username or not password:
logger.warning(f"Registration attempt with empty credentials from {request.remote}")
return web.json_response({
- 'success': False,
+ 'success': False,
'message': '用户名和密码不能为空'
})
users = self.config.get('users', {})
+ # 由于现在所有用户都能看到所有设备,从安全角度上考虑,只允许注册一个用户
+ # 未来绑定设备功能完成后,再放开任意注册
+ if len(users) >= 1:
+ return web.json_response({
+ 'success': False,
+ 'message': '系统已经初始化过了,如果忘记了密码,请直接删除“.secrets.yaml”文件,删除后重启本服务'
+ })
+
if username in users:
logger.warning(f"Registration attempt with existing username {username} from {request.remote}")
return web.json_response({
- 'success': False,
+ 'success': False,
'message': '用户名已存在'
})
@@ -39,13 +55,13 @@ class RegisterHandler:
logger.info(f"Successfully registered new user {username} from {request.remote}")
return web.json_response({
- 'success': True,
+ 'success': True,
'message': '注册成功'
})
except Exception as e:
logger.error(f"Registration error: {str(e)}", exc_info=True)
return web.json_response({
- 'success': False,
+ 'success': False,
'message': '注册失败,请稍后重试'
})