diff --git a/src/components/Credentials/CredentialInfo.js b/src/components/Credentials/CredentialInfo.js index df0361a2b..be69682b4 100644 --- a/src/components/Credentials/CredentialInfo.js +++ b/src/components/Credentials/CredentialInfo.js @@ -60,6 +60,7 @@ const CredentialInfo = ({ credential, mainClassName = "text-sm lg:text-base w-fu const { isOnline } = useContext(StatusContext); const [parsedCredential, setParsedCredential] = useState(null); const [credentialFormat, setCredentialFormat] = useState(''); + const [issuerName, setIssuerName] = useState(''); const [credentialSubjectRows, setCredentialSubjectRows] = useState([]); const container = useContext(ContainerContext); const { api } = useContext(SessionContext); @@ -84,6 +85,7 @@ const CredentialInfo = ({ credential, mainClassName = "text-sm lg:text-base w-fu } setParsedCredential(c.beautifiedForm); + setIssuerName(c.beautifiedForm.issuer?.name || ''); let iss = c.beautifiedForm.iss; @@ -212,7 +214,7 @@ const CredentialInfo = ({ credential, mainClassName = "text-sm lg:text-base w-fu {!credentialSubjectRows.some(row => row.name === 'institution') && renderRow('institution', 'Institution', parsedCredential?.vc?.credentialSubject?.institution, screenType)} {!credentialSubjectRows.some(row => row.name === 'valid_from') && renderRow('valid_from', 'Valid from', parsedCredential?.vc?.credentialSubject?.valid_from, screenType)} {!credentialSubjectRows.some(row => row.name === 'valid_until') && renderRow('valid_until', 'Valid until', parsedCredential?.vc?.credentialSubject?.valid_until, screenType)} - {!credentialSubjectRows.some(row => row.name === 'issuer') && renderRow('issuer', 'Issuer', parsedCredential?.vc?.credentialSubject?.issuer, screenType)} + {!credentialSubjectRows.some(row => row.name === 'issuer') && renderRow('issuer', 'Issuer', parsedCredential?.vc?.credentialSubject?.issuer || issuerName, screenType)} ) } diff --git a/src/context/ContainerContext.tsx b/src/context/ContainerContext.tsx index 7e9b2e8be..a183e486c 100644 --- a/src/context/ContainerContext.tsx +++ b/src/context/ContainerContext.tsx @@ -269,6 +269,7 @@ export const ContainerContextProvider = ({ children }) => { if (isOpenBadgeCredential) return beautifiedForm.credentialSubject.achievement.name; if (t.includes('SupportCredential') || t.includes('ExamEnrollmentCredential')) return beautifiedForm.credentialSubject.title; + if (t.includes('AcademicEnrollmentCredential')) return beautifiedForm.credentialSubject.name; if (storedCredentialConfigurationId === 'EduID') return 'eduID' return result.beautifiedForm.name || credentialConfiguration?.display?.[0]?.name || 'Credential'; diff --git a/src/lib/services/pre-authorized-code-flow.service.ts b/src/lib/services/pre-authorized-code-flow.service.ts index 3ab34409a..c20b9ccc6 100644 --- a/src/lib/services/pre-authorized-code-flow.service.ts +++ b/src/lib/services/pre-authorized-code-flow.service.ts @@ -19,15 +19,17 @@ export const getToken = async ( preAuthorizedCode: string, pin: string = '', ): Promise => { + const bodyFormEncoded = new URLSearchParams({ + grant_type: FIELD_PRE_AUTHORIZED_CODE_GRANT_TYPE, + 'pre-authorized_code': preAuthorizedCode, + user_pin: pin || undefined, + }).toString(); + const response = await ProxyClient.post( `${credentialIssuer}${PATH_TOKEN}`, + bodyFormEncoded, { - grant_type: FIELD_PRE_AUTHORIZED_CODE_GRANT_TYPE, - 'pre-authorized_code': preAuthorizedCode, - user_pin: pin || undefined, - }, - { - 'Content-Type': 'application/json', + 'Content-Type': 'application/x-www-form-urlencoded', }, ) as ProxyResponseData;