fix: 二维码接口去鉴权(修复破图)+ 产品序列号加部门前缀
1) 二维码破图
/products/qrcode/{sn} 带了 Depends(get_current_user),而前端是用
<img src="/api/v1/products/qrcode/{sn}"> 引用它的 —— <img> 无法携带
Authorization 头,请求必然 401,页面上就是破图(同时刷大量 401 审计)。
该接口不查库、只把调用方传进来的字符串渲染成二维码,没有数据泄露面,
故去掉鉴权。刻意不做 ?token= 兜底:JWT 进 URL 会渗进访问日志、浏览器
历史与 Referer,比它想解决的问题更糟。
实测:HTTP 200 / image/png / 300x300。
2) 序列号部门前缀
新增 config.SERIAL_PREFIX(LICA 为 "L"),counter_service 生成
{前缀}{15 位 HEX},总长仍严格 16 位 —— products.serial_number 是
String(16),前端 TaskTreeViewer / ManualInput / ScanPage 多处按 16 位
校验,不能改总长。IRIS 实例该值为空串,格式保持原样。
实测 LICA 生成 L000000000000002。
前端本就兼容带字母的序列号:TaskTreeViewer 的占位符示例就是
X20260801000001,ScanPage 的 replace(/[^a-zA-Z0-9]/g,"") 也不会滤掉 L。
This commit is contained in:
@ -38,6 +38,9 @@ class Settings(BaseSettings):
|
||||
# 全仓库的部门过滤点只有三处 SQL:登录、人员列表、物料选择器,全部引用这里。
|
||||
ORG_DEPARTMENT: str = "LICA" # MOM sys_user.department 的取值
|
||||
MATERIAL_CATEGORY_PREFIX: str = "LICA/" # MOM material_base.category 的部门前缀
|
||||
# 产品序列号前缀(产品身份证 / 二维码内容)。留空则生成纯 16 位 HEX。
|
||||
# LICA 用 "L" 打头,一眼区分部门来源;IRIS 实例保持空串不受影响。
|
||||
SERIAL_PREFIX: str = "L"
|
||||
|
||||
@property
|
||||
def CORS_ORIGINS_LIST(self) -> list[str]:
|
||||
|
||||
Reference in New Issue
Block a user