Skip to content

Instantly share code, notes, and snippets.

@ArnauMrJeff
ArnauMrJeff / AppleAuth.java
Last active September 7, 2020 15:54
Apple ID Sign In: AppleAuth
private void appleAuth(String authorizationCodeSentByApp, String keyIdentifierSentByApp) throws Exception {
var token = generateJWT();
// Http Requests Client
var tokenResponse = httpClient.getTokenResponse("CLIENT_ID", token, "authorization_code", authorizationCodeSentByApp);
var idToken = tokenResponse.getIdToken();
// We had until here
@ArnauMrJeff
ArnauMrJeff / ApplePublicKey.java
Last active September 7, 2020 15:56
Apple ID Sign In: ApplePublicKey
import com.fasterxml.jackson.annotation.JsonProperty;
public final class ApplePublicKey {
private final String kty;
private final String kid;
private final String use;
private final String alg;
private final String n;
private final String e;
@ArnauMrJeff
ArnauMrJeff / ListApplePublicKey.java
Last active September 7, 2020 15:56
Apple ID Sign In: ListApplePublicKey
import com.fasterxml.jackson.annotation.JsonProperty;
public final class ListApplePublicKey {
private final List<ApplePublicKey> keys;
public ListApplePublicKey(@JsonProperty("keys") List<ApplePublicKey> keys) {
this.keys = keys;
}
@ArnauMrJeff
ArnauMrJeff / AppleAuth.java
Last active September 7, 2020 15:59
Apple ID Sign In: GetClaims
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.JwsHeader;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import org.bouncycastle.asn1.pkcs.PrivateKeyInfo;
import org.bouncycastle.openssl.PEMParser;
import org.bouncycastle.openssl.jcajce.JcaPEMKeyConverter;
import java.security.KeyFactory;
import java.security.NoSuchAlgorithmException;
@ArnauMrJeff
ArnauMrJeff / AppleAuth.java
Last active September 7, 2020 15:59
Apple ID Sign In: CreatePublicKeyApple
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.JwsHeader;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import org.bouncycastle.asn1.pkcs.PrivateKeyInfo;
import org.bouncycastle.openssl.PEMParser;
import org.bouncycastle.openssl.jcajce.JcaPEMKeyConverter;
import java.security.KeyFactory;
import java.security.NoSuchAlgorithmException;
@ArnauMrJeff
ArnauMrJeff / AppleAuth.java
Last active May 19, 2024 15:27
Apple ID Sign In: AppleAuth First Step
private void appleAuth(String authorizationCodeSentByApp, String keyIdentifierSentByApp) throws Exception {
var token = generateJWT();
//Http Requests Client
var tokenResponse = httpClient.getTokenResponse("CLIENT_ID", token, "authorization_code", authorizationCodeSentByApp);
var idToken = tokenResponse.getIdToken();
// Next Steps
}
@ArnauMrJeff
ArnauMrJeff / TokenResponse.java
Last active September 7, 2020 16:00
Apple ID Sign In: TokenResponse
import com.fasterxml.jackson.annotation.JsonProperty;
public final class TokenResponse {
private final String idToken;
private final String accessToken;
private final String tokenType;
private final Long expiresIn;
private final String refreshToken;
@ArnauMrJeff
ArnauMrJeff / AppleAuth.java
Last active September 7, 2020 16:01
Apple ID Sign In: GenerateJWT
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.JwsHeader;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import org.bouncycastle.asn1.pkcs.PrivateKeyInfo;
import org.bouncycastle.openssl.PEMParser;
import org.bouncycastle.openssl.jcajce.JcaPEMKeyConverter;
import java.io.File;
import java.io.FileReader;
@ArnauMrJeff
ArnauMrJeff / AppleAuth.java
Last active November 24, 2023 13:17
Apple ID Sign In: GeneratePrivateKey
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.JwsHeader;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import org.bouncycastle.asn1.pkcs.PrivateKeyInfo;
import org.bouncycastle.openssl.PEMParser;
import org.bouncycastle.openssl.jcajce.JcaPEMKeyConverter;
import java.io.File;
import java.io.FileReader;