Skip to content

Commit f221d86

Browse files
committed
chore: better error when communicating with legacy PE-based verifiers
1 parent e083025 commit f221d86

1 file changed

Lines changed: 12 additions & 4 deletions

File tree

packages/siop-oid4vp/lib/authorization-request/AuthorizationRequest.ts

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,6 @@ import { Dcql } from '../authorization-response'
44
import { fetchByReferenceOrUseByValue, getClientIdentifierPrefix, removeNullUndefined } from '../helpers'
55
import { authorizationRequestVersionDiscovery } from '../helpers/SIOPSpecVersion'
66
import { RequestObject } from '../request-object'
7-
import { assertValidAuthorizationRequestOpts, assertValidVerifyAuthorizationRequestOpts } from './Opts'
8-
import { assertValidRPRegistrationMedataPayload, createAuthorizationRequestPayload } from './Payload'
9-
import { URI } from './URI'
10-
import { CreateAuthorizationRequestOpts, VerifyAuthorizationRequestOpts } from './types'
117
import {
128
AuthorizationRequestPayload,
139
ClientIdentifierPrefix,
@@ -24,6 +20,10 @@ import {
2420
SupportedVersion,
2521
VerifiedAuthorizationRequest,
2622
} from '../types'
23+
import { assertValidAuthorizationRequestOpts, assertValidVerifyAuthorizationRequestOpts } from './Opts'
24+
import { assertValidRPRegistrationMedataPayload, createAuthorizationRequestPayload } from './Payload'
25+
import { CreateAuthorizationRequestOpts, VerifyAuthorizationRequestOpts } from './types'
26+
import { URI } from './URI'
2727

2828
export class AuthorizationRequest {
2929
private readonly _requestObject?: RequestObject
@@ -199,6 +199,14 @@ export class AuthorizationRequest {
199199
// TODO: we need to verify somewhere that if response_mode is direct_post, that the response_uri may be present,
200200
// BUT not both redirect_uri and response_uri. What is the best place to do this?
201201

202+
if (mergedPayload.presentation_definition || mergedPayload.presentation_definition_uri) {
203+
return Promise.reject(
204+
Error(
205+
`${SIOPErrors.INVALID_REQUEST}, The verifier is using a older draft implementation that is not supported. The verifier should update (DCQL instead of PE)`,
206+
),
207+
)
208+
}
209+
202210
const dcqlQuery = await Dcql.findValidDcqlQuery(mergedPayload, this._options?.version)
203211

204212
return {

0 commit comments

Comments
 (0)