优化后端鉴权与日志安全

This commit is contained in:
yml2213
2026-05-26 08:21:11 +08:00
parent 851d1d1efc
commit dea3023825
35 changed files with 402 additions and 185 deletions
@@ -7,10 +7,19 @@ import { formatFenToAmount, normalizeFen } from '../../utils/money.js'
import { parseTaskContext as parseTaskContextValue } from '../../utils/task-json.js'
import { nowIso } from '../../utils/time.js'
import { buildClaimUrl } from './claim-service.js'
import type { ClaimTokenRow, OrderItemRow, OrderRow, TaskRow } from '../../types/repository-rows.js'
export const CLAIM_TERMINAL_STATUSES = new Set(['expired', 'closed'])
export const KUAISHOU_CLOUD_CLAIM_GUIDE_BASE_PATH = '/kuaishou-cloud-guide'
type JsonObject = Record<string, any>
type ClaimContext = {
claimToken: ClaimTokenRow
task: TaskRow
order: OrderRow
orderItem: OrderItemRow
}
export async function getClaimContext(token: unknown) {
const normalized = String(token || '').trim()
@@ -76,7 +85,7 @@ export async function getClaimContext(token: unknown) {
}
}
export function buildClaimDetailPayload({ claimToken, task, order, orderItem }) {
export function buildClaimDetailPayload({ claimToken, task, order, orderItem }: ClaimContext) {
const kuaishouCloudFulfillment = mapClaimKuaishouCloudFulfillment(task, order)
return {
@@ -113,7 +122,7 @@ export function buildClaimDetailPayload({ claimToken, task, order, orderItem })
skuName: orderItem.sku_name,
quantity: orderItem.quantity,
},
session: null,
session: null as null,
kuaishouCloudFulfillment,
result: task.redeemed_at
? {
@@ -126,7 +135,7 @@ export function buildClaimDetailPayload({ claimToken, task, order, orderItem })
}
}
export function mapClaimKuaishouCloudFulfillment(task, order) {
export function mapClaimKuaishouCloudFulfillment(task: TaskRow, order: OrderRow) {
if (String(task?.executor_key || '').trim() !== 'kuaishou_ct_assisted') {
return null
}
@@ -213,11 +222,11 @@ export function mapClaimKuaishouCloudFulfillment(task, order) {
}
}
function parseTaskContext(task) {
function parseTaskContext(task: TaskRow): JsonObject {
return parseTaskContextValue(task)
}
async function expireClaimContext(claimToken, task) {
async function expireClaimContext(claimToken: ClaimTokenRow, task: TaskRow) {
const now = nowIso()
const nextClaimToken = await updateClaimToken(claimToken.id, {
status: 'expired',