我以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
decoder或JSONSerialization
方法中都不知道它的错误。但如果我这样使用,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
}
}
答案 0 :(得分:0)
最后我发现JSONWebToken无法正常工作。 现在我已经实现了JWTDecode并且它开始正确解码接收到的JWT。我不知道为什么但是JSONWebToken对于SWIFT 3有一些严重的错误。