Inicio de sesión en Google: GoogleIdTokenVerifier verifica el token con retraso

Implementé un back-end que recibe el token de inicio de sesión de Google desde un dispositivo Android o iOS e intenta verificarlo. El código funcionó correctamente hace unos meses, no ha cambiado, pero recientemente comenzó a rechazar todos los tokens como no válidos. Cuando trato de repetir la verificación nuevamente con el token previamente fallado después de ~ 10s de su tiempo de emisión, comienza a funcionar y devuelve información del usuario. ¿Por que sucede?

try {
    GoogleIdTokenVerifier verifier = new GoogleIdTokenVerifier.Builder(new NetHttpTransport(), new JacksonFactory()).setIssuer(ISSUER).build();

    GoogleIdToken idToken = verifier.verify(token);

    if (idToken != null) {

        Payload payload = idToken.getPayload();
        ExternalUserInfo externalUserInfo = new ExternalUserInfo();
        externalUserInfo.setId((String) payload.getSubject());
        externalUserInfo.setName((String) payload.get("given_name"));
        externalUserInfo.setFamilyName((String) payload.get("family_name"));
        externalUserInfo.setEmail(payload.getEmail());
        externalUserInfo.setLocale((String) payload.get("locale"));
        externalUserInfo.setSystemId(AuthorizationMapper.TYPE_GOOGLE);

        return externalUserInfo;
    } else { 
        logger.debug("Invalid Google Sign in token " + token);
    }
} catch (Exception e) {
    logger.error("Error while getting Google Sign in user info for token " + token, e);
}

Respuestas a la pregunta(0)

Su respuesta a la pregunta