docs: Clarify ownership validation message.

This commit is contained in:
Ruben Verborgh 2021-08-04 16:54:42 +02:00
parent d3de5f3114
commit c1d8f0e841
3 changed files with 13 additions and 12 deletions

View File

@ -82,11 +82,15 @@ export class TokenOwnershipValidator extends OwnershipValidator {
* Throws an error containing the description of which triple is needed for verification.
*/
private throwError(webId: string, token: string): never {
this.logger.debug(`Missing verification token at ${webId}`);
this.logger.debug(`No verification token found for ${webId}`);
const errorMessage = [
`<${webId}> <${SOLID.terms.oidcIssuerRegistrationToken.value}> "${token}" .`,
'Must be added to the WebId. This can be removed after registration.',
].join('\n');
'Verification token not found.',
'Please add the RDF triple',
`<${webId}> <${SOLID.oidcIssuerRegistrationToken}> "${token}".`,
`to the WebID document at ${webId.replace(/#.*/u, '')}`,
'to prove it belongs to you.',
'You can remove this triple again after validation.',
].join(' ');
throw new BadRequestHttpError(errorMessage);
}
}

View File

@ -34,16 +34,13 @@ async function postForm(url: string, formBody: string): Promise<Response> {
* Extracts the registration triple from the registration form body.
*/
function extractRegistrationTriple(body: string, webId: string): string {
const error = load(body)('p.error').first().text().trim()
.split('\n')[0];
const error = load(body)('p.error').first().text();
const regex = new RegExp(
`(<${webId}> <http://www.w3.org/ns/solid/terms#oidcIssuerRegistrationToken> "[^"]+"\\s*\\.\\s*)$`, 'u',
`<${webId}>\\s+<http://www.w3.org/ns/solid/terms#oidcIssuerRegistrationToken>\\s+"[^"]+"\\s*\\.`, 'u',
);
const match = regex.exec(error);
expect(match).toHaveLength(2);
const registrationTriple = match![1];
expect(registrationTriple).not.toHaveLength(0);
return registrationTriple;
expect(match).toHaveLength(1);
return match![0];
}
// No way around the cookies https://github.com/panva/node-oidc-provider/issues/552 .