import java.math.BigInteger;
import java.security.KeyFactory;
import java.security.PublicKey;
import java.security.spec.RSAPublicKeySpec;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.codec.binary.Base64;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.lyy.base.commom.RpcResult;
import com.lyy.base.util.HttpClientUtils;
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.ExpiredJwtException;
import io.jsonwebtoken.Jws;
import io.jsonwebtoken.JwtParser;
import io.jsonwebtoken.Jwts;
public class AppleLoginUtils {
private String appleIssuerUrl = "https://appleid.apple.com";
private static String appleAuthUrl = "https://appleid.apple.com/auth/keys";
private String appleAud = "com.lyy.test";
private static Map> map;
private static String kty;
static {
try {
// https://developer.apple.com/documentation/sign_in_with_apple/jwkset/keysString str = HttpClientUtils.doGet(appleAuthUrl);
JSONObject data = JSONObject.parseObject(str);
System.err.println("keys=====>" + JSONObject.toJSONString(data));
JSONArray jsonArray = data.getJSONArray("keys");
map = new HashMap>();
for (int i = 0; i < jsonArray.size(); i++) {
kty = jsonArray.getJSONObject(i).getString("kty");
Map m = new HashMap();
m.put("n", jsonArray.getJSONObject(i).getString("n"));
m.put("e", jsonArray.getJSONObject(i).getString("e"));
map.put(jsonArray.getJSONObject(i).getString("kid"), m);
}
} catch (Exception ex) {