由于JWT在Swift 3中不起作用,因此解码动态接收的输出。"令牌尚未生效(不在声明之前)"

时间:2017-01-05 07:29:42

标签: ios swift swift3 jwt decode

我以JWT格式获取令牌形式的HTTP请求。如果我将输出打印并解码为静态值,它可以正常工作,但当我尝试解码输出值时,它不起作用并显示错误信息

  

令牌尚未生效(不在索赔之前)。

这是我的代码

if let token = parseResult["token"] as? String{
    //print(token)
    do {
        let claims = try JWT.decode(token, algorithm: .hs256(Constants.Route.Secret.data(using: .utf8)!))
            print("\(claims)")                       
    } catch {
            print("\(error)")
            return
    }
}

如果我将上面打印的令牌用于下一个请求,它的工作正常。我在JWT decoderJSONSerialization方法中都不知道它的错误。但如果我这样使用,JSONSerialization打印的数据就可以了:

if let token = parseResult["token"] as? String{
  let testToken:String = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ"
    do {
        let claims = try JWT.decode(testToken, algorithm: .hs256(Constants.Route.Secret.data(using: .utf8)!))
            print("\(claims)")                       
    } catch {
            print("\(error)")
            return
    }
}

1 个答案:

答案 0 :(得分:0)

最后我发现JSONWebToken无法正常工作。 现在我已经实现了JWTDecode并且它开始正确解码接收到的JWT。我不知道为什么但是JSONWebToken对于SWIFT 3有一些严重的错误。