Skip to content

Instantly share code, notes, and snippets.

@PedroFarina
Created May 13, 2020 20:29
Show Gist options
  • Save PedroFarina/2e7758bb0cf42f918f64d62893a3e2da to your computer and use it in GitHub Desktop.
Save PedroFarina/2e7758bb0cf42f918f64d62893a3e2da to your computer and use it in GitHub Desktop.
Generating a JWT for Apple Music (Valid for 5 months)
import SwiftJWT
let privateKey = """
-----BEGIN PRIVATE KEY-----
MOSDFoMOIFmod7r3osIODfmoisdfnoUDSOAMD6
NOfvf5OmigsGmsodiSDOMfi0+ePWEFmpoasMPs
AMGdsOIDmu+e6rmoSOMFIDSmf25/fpoMADofim
MGI123NInrsFDosmfoISDM
-----END PRIVATE KEY-----
"""
let signer = JWTSigner.es256(privateKey: Data(privateKey.utf8))
let calendar = Calendar.current
if let exp = calendar.date(byAdding: .month, value: 5, to: Date()) {
let claims = ClaimsStandardJWT(iss: "ABCD1234EF", exp: exp, iat: Date())
let header = Header(kid: "GHIJ5678KL")
let myJWT = JWT(header: header, claims: claims)
do {
let signedJWT = try myJWT.sign(using: signer)
print(signedJWT)
} catch {
print("JWT error: \(error)")
}
}
@PedroFarina
Copy link
Author

Made using SwiftJWT library

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment