2017-01-05 1 views
0

Я получаю токен формы HTTP-запроса в формате JWT. если я печатать и декодировать мой вывод как статическое значение, это работает отлично, но когда я попытался расшифровать выходное значение, это не работает, и сообщение показать ошибки
Декодировать динамически полученный выход, поскольку JWT не работает в Swift 3. «Токен еще не действителен (не до утверждения)»

лексема еще не действует (не ранее претензии).

вот мой код

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

Скорее всего, ["nbf" претензия] (https://tools.ietf.org/html/rfc7519#section-4.1.5) является еще не действителен. – user28434

+0

Можете ли вы добавить * актуальный * токен JWT, с которым у вас проблема? Первых двух частей будет достаточно. – user28434

+0

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ –

ответ

0

Наконец я понял, что JSONWebToken не работает должным образом. теперь я внедрил JWTDecode и его начальное декодирование получило JWT должным образом. Я не знаю, почему, но у JSONWebToken есть серьезная ошибка для SWIFT 3.