diff --git a/src/request-object/Payload.ts b/src/request-object/Payload.ts index 94d8c10..caa8912 100644 --- a/src/request-object/Payload.ts +++ b/src/request-object/Payload.ts @@ -42,7 +42,8 @@ export const createRequestObjectPayload = async (opts: CreateAuthorizationReques scope: payload.scope ?? Scope.OPENID, //TODO implement /.well-known/openid-federation support in the OP side to resolve the client_id (URL) and retrieve the metadata client_id: clientId ?? opts.requestObject.signature.did, - redirect_uri: payload.redirect_uri, + ...(payload.redirect_uri && { redirect_uri: payload.redirect_uri }), + ...(payload.response_uri && { response_uri: payload.response_uri }), response_mode: payload.response_mode ?? ResponseMode.DIRECT_POST, ...(payload.id_token_hint && { id_token_hint: payload.id_token_hint }), registration_uri: registration.clientMetadataOpts.reference_uri, diff --git a/src/rp/RP.ts b/src/rp/RP.ts index 1e58ce6..5a19620 100644 --- a/src/rp/RP.ts +++ b/src/rp/RP.ts @@ -237,14 +237,14 @@ export class RP { throw Error(`A response or redirect URI is required at this point`); } else { if (responseURIType === 'redirect_uri') { - if (this._createRequestOptions?.requestObject?.payload && !this._createRequestOptions.requestObject?.payload?.redirect_uri) { + if (this._createRequestOptions?.requestObject?.payload) { this._createRequestOptions.requestObject.payload.redirect_uri = responseURI; } if (!referenceURI && !this._createRequestOptions.payload?.redirect_uri) { this._createRequestOptions.payload.redirect_uri = responseURI; } } else if (responseURIType === 'response_uri') { - if (this._createRequestOptions?.requestObject?.payload && !this._createRequestOptions.requestObject?.payload?.response_uri) { + if (this._createRequestOptions?.requestObject?.payload) { this._createRequestOptions.requestObject.payload.response_uri = responseURI; } if (!referenceURI && !this._createRequestOptions.payload?.response_uri) {