isValidJwtAttestation method
Implementation
Future<AttestationResponse?> isValidJwtAttestation(
String attestationId,
String attestationJWT,
) async {
final key = await getPublicKey();
_core.logger.d('[$runtimeType] validating v2 public key: ${key?.toJson()}');
try {
if (key != null) {
final claims = validateAttestation(attestationJWT, key);
_core.logger.d('[$runtimeType] claims: $claims');
return AttestationResponse(
origin: claims.origin,
attestationId: attestationId,
isScam: claims.isScam,
);
}
} catch (e) {
_core.logger.e('[$runtimeType] error validating attestation: $e');
}
final newKey = await fetchAndPersistPublicKey();
try {
if (newKey != null) {
final claims = validateAttestation(attestationJWT, newKey);
_core.logger.d('[$runtimeType] claims: $claims');
return AttestationResponse(
origin: claims.origin,
attestationId: attestationId,
isScam: claims.isScam,
);
}
} catch (e) {
_core.logger.e('[$runtimeType] error validating attestation: $e');
}
return null;
}