首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >快速生成DeviceCheck API授权承载令牌时面临的问题

快速生成DeviceCheck API授权承载令牌时面临的问题
EN

Stack Overflow用户
提问于 2019-06-03 11:13:15
回答 1查看 435关注 0票数 3

我在做DeviceCheck。要生成JSON web令牌&我使用的是SwiftJWT库。但我不知道如何为DeviceCheck生成DeviceCheck

代码:

代码语言:javascript
复制
let contents = try String(contentsOfFile: filepath)
let headers = Header(kid: key_id)

struct MyClaims: Claims {
    var iss: String
    var iat: Date
    var exp: Date
}

let jwt = JWT(header: headers, claims: MyClaims(iss: iss_id, iat: Date(timeIntervalSinceNow: 3600), exp: Date(timeIntervalSinceNow: 3600)))
let privateKey = contents.data(using: .utf8)!
let rsaJWTEncoder = JWTEncoder(jwtSigner: JWTSigner.es256(privateKey: privateKey))

var jwtString =  try rsaJWTEncoder.encodeToString(jwt)

在打印JWT时,我得到以下响应:

JWT(标题:SwiftJWT.Header(类型:可选(“JWT”),alg:可选(“ES256”),jku: nil,jwk: nil,crit:可选(“KEY_ID”),x5u: nil,x5c: nil,x5t: nil,x5tS256: nil,cty: nil,crit: nil),索赔:SwiftiOSDeviceCheck.ViewController.(未知上下文为$104614dbc)(未知上下文为$104614e28).MyClaims(iss:"ISS_ID",iat: 2019-06-03 11:55:53 +0000,(实例: 2019-06-03 11:55:53 +0000)

在API中,我在postman中得到了下面的响应:

无法验证授权令牌

我怎样才能解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-17 12:22:49

我找到了这个问题的答案。我使用CupertinoJWS而不是SwiftJWT

代码语言:javascript
复制
let jwt = JWT(keyID: keyID, teamID: teamID, issueDate: Date(), expireDuration: 60 * 60)

    do {
        let token = try jwt.sign(with: p8Key)
        // Use the token in the authorization header in your requests connecting to Apple’s API server.
        // e.g. urlRequest.addValue(_ value: "bearer \(token)", forHTTPHeaderField field: "authorization")
        print("Generated JWT: \(token)")
        return token
    } catch {
        // Handle error
    }
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56426171

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档