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:
1 parent
1388fcb72b
commit
8c1956cdeb
5 files changed
+131
-6
No files matched your search
@@ -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'])
|
||||
|
||||
|
||||
Reference in new issue
Block a user