feat(dnfs): 左上角用户信息面板(默认折叠),新增 /whoami 身份接口

dnfs 新增 POST /whoami:解 Token payload 返回 user/is_admin,无或畸形
Token 返回 login=false(HttpOnly Cookie 模式下 JS 无法读 Token,身份
必须由后端下发);static 加 /whoami 代理(Cookie 转 Bearer);前端
dnfs.html 左上新增 userpanel,镜像 minimap 样式默认折叠,展开显示
用户名/角色/退出登录(POST /logout 清 Cookie 后跳登录页)。
This commit is contained in:
qing committed 2026-07-30 09:31:28 +08:00
1 parent 1388fcb72b
commit 8c1956cdeb
5 files changed
+131 -6

No files matched your search

+22
View File
@@ -273,6 +273,28 @@ def get_notes():
return jsonify(result), 200
# 当前用户身份查询:配合前端用户面板,返回 user / is_admin。
# 与 get_notes 同款可选解析:无 Token 或畸形 Token 按未登录处理(不 500)。
@app.route('/whoami', methods=["POST"])
def whoami():
info = None
auth: str = request.headers.get('Authorization', '')
if auth.startswith('Bearer '):
try:
info = decode_token(auth[7:])
except Exception:
info = None
if info is None:
return jsonify({'login': False}), 200
return jsonify({
'login': True,
'user': info.get('user'),
'is_admin': bool(info.get('is_admin'))
}), 200
# eg: {"id": 1}
@app.route('/delete_note', methods=['POST'])