Ошибка при получении пользовательского токена для Apple Music SDK с JWT

Я безуспешно пытаюсь получить userToken для Apple Music SDK, используя developerToken от JWT. Я использовал pelauimagineering/apple-music-token-generator и смог получить действительный статический userToken. Но яблоко рекомендую сделать динамическим, поэтому я пытаюсь снова использовать JWT.

Кто-то может сказать мне, пожалуйста, что не так с моим кодом? Спасибо

func fetchDeveloperToken() -> String? {
   func fetchDeveloperToken() -> String? {
    let iat = Date().timeIntervalSince1970
    let days = TimeInterval(24*60*60*120) //120 days
    let exp = TimeInterval(iat + days)
    let kid = "TBESJXXXXX"
    let iss = "KQ6Z6XXXXX"
    let alg = "ES256"
    let secret = "MIGTAgEAMBMGByqEU7ZHQsoVfmKCCxS5W6BnCgCgYIKoZIzj0AAQcggNoN7dTkNG/8timkkf+Z2toogAqN41YgOXXXXXXXXXXXXXXXXXXsecretkey"
    let header:[AnyHashable:Any] = ["alg":alg, "kid":kid]
    let payload:[AnyHashable:Any] = ["iss": iss,
                                     "iat": iat,
                                     "exp": exp]
    let algorithm256 = JWTAlgorithmHS256()
    return JWT.encodePayload(payload, withSecret: secret, withHeaders: header, algorithm: algorithm256)
}

1 ответ

Apple требует от вас использовать алгоритм ES256, а не HS256, я столкнулся с той же проблемой. Используемый вами библиотека JWT не поддерживает ES256, как вы можете видеть здесь. Единственная библиотека на iOS, которая в списке поддерживает эту функцию, это эта

Другие вопросы по тегам