authenticate method
Future<UuidValue>
authenticate(
- Session session, {
- required PasskeyLoginRequest request,
- required Transaction? transaction,
Authenticates the client with the given Passkey credentials.
Returns the AuthUser's ID upon successful login.
Throws a PasskeyChallengeNotFoundException if the challenge is not found. Throws a PasskeyChallengeExpiredException if the challenge has expired. Throws a PasskeyPublicKeyNotFoundException if the public key is not found.
Implementation
Future<UuidValue> authenticate(
final Session session, {
required final PasskeyLoginRequest request,
required final Transaction? transaction,
}) async {
final challenge = await _consumeChallenge(
session,
request.challengeId,
transaction: transaction,
);
final passkeyAccount = await _getAccount(
session,
keyId: request.keyId,
transaction: transaction,
);
await _passkeys.verifyLogin(
registrationAttestationObject:
passkeyAccount.attestationObject.asUint8List,
authenticatorData: request.authenticatorData.asUint8List,
clientDataJSON: request.clientDataJSON.asUint8List,
signature: request.signature.asUint8List,
challenge: challenge.challenge.asUint8List,
);
return passkeyAccount.authUserId;
}