forked from imbytecat/fullstack-starter
- 更新依赖管理文档,明确使用 Bun Catalog 统一管理版本并规范安装方式,新增已知问题与解决方案、依赖选择经验及 Git 工作流要求,强化团队协作与技术决策可追溯性。 - 添加硬件指纹页面,展示机器码、指纹质量等级及详细信息,并支持一键复制和缓存提示。 - 添加指纹路由配置并更新路由树类型定义以包含新路由路径和相关类型。 - 添加硬件指纹获取接口的契约定义,包含指纹字符串、质量等级、强标识符数量和时间戳的验证规则。 - 添加指纹合约到API合约导出中 - 添加硬件指纹获取接口,支持10分钟缓存并包含主硬盘序列号以提升指纹稳定性。 - 添加指纹路由到API路由器中 - 重构硬件指纹生成逻辑,引入缓存机制、质量等级评估和容错处理,提升稳定性与可维护性。
27 lines
618 B
TypeScript
27 lines
618 B
TypeScript
import { oc } from '@orpc/contract'
|
||
import { z } from 'zod'
|
||
|
||
/**
|
||
* 硬件指纹质量等级
|
||
*/
|
||
const fingerprintQualitySchema = z.enum(['strong', 'medium', 'weak'])
|
||
|
||
/**
|
||
* 硬件指纹响应 Schema
|
||
*/
|
||
const fingerprintResultSchema = z.object({
|
||
/** 机器码(HMAC-SHA256 哈希) */
|
||
fingerprint: z.string(),
|
||
/** 指纹质量等级 */
|
||
quality: fingerprintQualitySchema,
|
||
/** 可用的强标识符数量 */
|
||
strongIdentifiersCount: z.number(),
|
||
/** 生成时间戳 */
|
||
timestamp: z.number(),
|
||
})
|
||
|
||
/**
|
||
* 获取硬件指纹契约
|
||
*/
|
||
export const get = oc.input(z.void()).output(fingerprintResultSchema)
|