Require current node possession proof

This commit is contained in:
冰朔 2026-08-10 08:00:53 +08:00
commit 64062fadac
10 changed files with 417 additions and 10 deletions

View file

@ -79,6 +79,7 @@ export interface DomainAccessEvidence {
domainId: string;
manifest?: DomainManifestEvidence;
nodeId: string;
nodePossessionVerified: boolean;
nodeRegistrationVerified: boolean;
nodeType: DomainNodeType;
sessionCapability?: DomainSessionCapability;
@ -244,6 +245,7 @@ export function evaluateDomainAccess(evidence: DomainAccessEvidence, now = Date.
const blockers: string[] = [];
if (!evidence.accountVerified) blockers.push('account_identity_missing');
if (!evidence.nodeRegistrationVerified || !evidence.nodeId) blockers.push('verified_node_registration_missing');
if (!evidence.nodePossessionVerified) blockers.push('verified_node_possession_missing');
const manifest = evidence.manifest;
const verifier = manifest?.verifierReceipt;
if (!manifest
@ -285,6 +287,10 @@ export function evaluateDomainAccess(evidence: DomainAccessEvidence, now = Date.
nodeId: evidence.nodeId,
nodeType: evidence.nodeType,
runtimeReady,
stage: runtimeReady ? 'runtime-ready' : evidence.accountVerified && evidence.nodeRegistrationVerified && Boolean(evidence.nodeId) ? 'identity-verified' : 'login-required',
stage: runtimeReady
? 'runtime-ready'
: evidence.accountVerified && evidence.nodeRegistrationVerified && evidence.nodePossessionVerified && Boolean(evidence.nodeId)
? 'identity-verified'
: 'login-required',
};
}