В настоящее время я делаю следующее
String region = "us-east-1";
String poolID = "us-east-1_whatever";
public Boolean valid() {
try {
String cognitoUrl = String.format("https://cognito-idp.%s.amazonaws.com/%s/.well-known/jwks.json", region, poolID);
JwkProvider provider = new UrlJwkProvider(new URL(cognitoUrl));
// got the value from the cognito url
Jwk jwk = provider.get("value");
RSAPublicKey publicKey = (RSAPublicKey) jwk.getPublicKey();
Algorithm algorithm = Algorithm.RSA256(publicKey, null);
String iss = String.format("https://cognito-idp.%s.amazonaws.com/%s", region, poolID);
JWTVerifier verifier = JWT.require(algorithm).withIssuer(iss).build();
verifier.verify(token);
} catch (Exception err) {
return false;
}
return true;
}
, но это кажется очень медленным.как я могу проверить токен быстрее?Я использую
compile group: 'com.auth0', name: 'jwks-rsa', version: '0.3.0'
compile 'com.auth0:java-jwt:3.8.1'