fix(auth): 完善权限控制与强制改密流程
This commit is contained in:
@@ -65,6 +65,8 @@ Vant、Zod、PDF 预览、第三方签名组件和自动化测试暂不接入;
|
||||
|
||||
真实流程会在进入页面时消费 Token,并在提交时携带 `deliveryId`、`uploadToken` 和幂等键。Token 消费接口目前只返回投递凭证,不返回正式文书内容,因此真实模式会停在安全提示页,不会让患者在未阅读正式文书时提交签名。待后端提供患者端文书读取接口后,再接入 PDF/文书展示和正式提交闭环。
|
||||
|
||||
入口页会在消费前立即从地址栏移除 `token`、`signToken`、`t` 参数,并通过 `Referrer-Policy: no-referrer` 的页面元信息阻止凭证随后续请求外泄。部署网关仍应配置同名 HTTP 响应头,作为浏览器解析 HTML 前的保护。
|
||||
|
||||
默认 `VITE_USE_MOCK=true` 时可以无 Token 演示完整页面交互;联调真实 Token 流程时设置 `VITE_USE_MOCK=false`,或直接使用带 `token`/`signToken`/`t` 查询参数的签署链接。
|
||||
|
||||
## 与医护端的关系
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="referrer" content="no-referrer" />
|
||||
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>patient-h5</title>
|
||||
|
||||
@@ -25,8 +25,20 @@ async function initialize() {
|
||||
getQueryValue(route.query.signToken) ||
|
||||
getQueryValue(route.query.t)
|
||||
|
||||
await initializeSignFlow(token)
|
||||
loading.value = false
|
||||
if (token) {
|
||||
const cleanQuery = { ...route.query }
|
||||
delete cleanQuery.token
|
||||
delete cleanQuery.signToken
|
||||
delete cleanQuery.t
|
||||
// 在发起接口请求前清理地址栏,避免一次性凭证进入历史记录、截图或后续 Referer。
|
||||
await router.replace({ path: route.path, query: cleanQuery, hash: route.hash })
|
||||
}
|
||||
|
||||
try {
|
||||
await initializeSignFlow(token)
|
||||
} finally {
|
||||
loading.value = false
|
||||
}
|
||||
}
|
||||
|
||||
function startSigning() {
|
||||
|
||||
Reference in New Issue
Block a user