spec(backend): IdentifiableErrorの場合もエラーメッセージが正常に表示されるように (MisskeyIO#463)

This commit is contained in:
まっちゃとーにゅ 2024-02-18 06:21:58 +09:00 committed by GitHub
parent 82cc3987c1
commit 4eb645403f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
9 changed files with 67 additions and 37 deletions

View file

@ -107,7 +107,7 @@ export class WebAuthnService {
const challenge = await this.redisClient.get(`webauthn:challenge:${userId}`);
if (!challenge) {
throw new IdentifiableError('7dbfb66c-9216-4e2b-9c27-cef2ac8efb84', 'challenge not found');
throw new IdentifiableError('7dbfb66c-9216-4e2b-9c27-cef2ac8efb84', 'Unable to find registration challenge. Please try again.');
}
await this.redisClient.del(`webauthn:challenge:${userId}`);
@ -125,13 +125,13 @@ export class WebAuthnService {
});
} catch (error) {
this.logger.error('Failed to verify registration response', { error });
throw new IdentifiableError('5c1446f8-8ca7-4d31-9f39-656afe9c5d87', 'verification failed');
throw new IdentifiableError('5c1446f8-8ca7-4d31-9f39-656afe9c5d87', 'Unable to verify registration response. Please try again.');
}
const { verified } = verification;
if (!verified || !verification.registrationInfo) {
throw new IdentifiableError('bb333667-3832-4a80-8bb5-c505be7d710d', 'verification failed');
throw new IdentifiableError('bb333667-3832-4a80-8bb5-c505be7d710d', 'Unable to verify registration response. Please try again.');
}
const { registrationInfo } = verification;
@ -156,7 +156,7 @@ export class WebAuthnService {
});
if (keys.length === 0) {
throw new IdentifiableError('f27fd449-9af4-4841-9249-1f989b9fa4a4', 'no keys found');
throw new IdentifiableError('f27fd449-9af4-4841-9249-1f989b9fa4a4', 'You have no registered security keys or passkeys yet.');
}
const authenticationOptions = await generateAuthenticationOptions({
@ -178,7 +178,7 @@ export class WebAuthnService {
const challenge = await this.redisClient.get(`webauthn:challenge:${userId}`);
if (!challenge) {
throw new IdentifiableError('2d16e51c-007b-4edd-afd2-f7dd02c947f6', 'challenge not found');
throw new IdentifiableError('2d16e51c-007b-4edd-afd2-f7dd02c947f6', 'Unable to find authentication challenge. Please try again.');
}
await this.redisClient.del(`webauthn:challenge:${userId}`);
@ -189,7 +189,7 @@ export class WebAuthnService {
});
if (!key) {
throw new IdentifiableError('36b96a7d-b547-412d-aeed-2d611cdc8cdc', 'unknown key');
throw new IdentifiableError('36b96a7d-b547-412d-aeed-2d611cdc8cdc', 'Unable to identify your security key. Please try with another key.');
}
// マイグレーション
@ -235,7 +235,7 @@ export class WebAuthnService {
});
} catch (error) {
this.logger.error('Failed to verify authentication response', { error });
throw new IdentifiableError('b18c89a7-5b5e-4cec-bb5b-0419f332d430', 'verification failed');
throw new IdentifiableError('b18c89a7-5b5e-4cec-bb5b-0419f332d430', 'Unable to verify authentication response. Please try again.');
}
const { verified, authenticationInfo } = verification;