validate method

Future<IdToken> validate(
  1. String token
)

Validates a given JWT from Firebase Auth.

Example:

final validator = FirebaseAuthValidator();
await validator.init();
final token = validator.validate(token)

if (token.isVerified) {
  // ... do authenticated stuff
}

Implementation

Future<IdToken> validate(
  String token,
) async {
  assert(client != null);
  final credential = client!.createCredential(idToken: token);

  await for (var e in credential.validateToken()) {
    throw Exception('Validating ID token failed: $e');
  }

  if (!(credential.idToken.claims.subject.isNotEmpty &&
      credential.idToken.claims.subject.length <= 128)) {
    throw Exception(
      'ID token has "sub" (subject) claim which is not a valid uid',
    );
  }

  return credential.idToken;
}