【问题标题】:How to check if current time is greater than jwt exp(expiration time) in swift?如何快速检查当前时间是否大于jwt exp(到期时间)?
【发布时间】:2016-10-14 20:24:46
【问题描述】:

我是 swift 的初学者。我有 json 网络令牌 (jwt),提取后我有这个有效负载:

exdate": 2016-07-13 10:55:27, “pack_id”:1, “sub”:10510,“pack_tag”:R,

"ref": sxojAVrPADqrVrJ2JiS8j0JMmQIVSKNepaagwBte9vJH1pSDE2OBhUcia59u2q0tOXTcDSBtsZ1I40yMnkmdAg==,

nbf”:1465891091,“exp”:1465892291,“iat”:1465891091等

现在,我的目标是当当前时间大于 exp 时,我将从服务器刷新令牌 ref。现在的问题是:如何检查当前时间是否大于 exp

【问题讨论】:

  • 我可以通过 NSDate 获取当前日期和时间,但我需要上述 exp 格式的时间跨度以便我可以比较。

标签: ios swift timer token jwt


【解决方案1】:

这里更新了 Swift 5 (JWT Formatting)。

//Time in seconds since 1970.
let expiry = 1465891091

//if expirationDate > Now
if Date(timeIntervalSince1970: Double(expiry)) > Date() {
    print("JWT hasn't expired yet.")
} else {
    print("JWT has expired.")
}

【讨论】:

    【解决方案2】:
        let dateFormatter = NSDateFormatter()
    
        dateFormatter.dateFormat = "yyyy-MM-dd hh:mm:ss"
    
        let dateTimeStamp = NSDate(timeIntervalSince1970:1465891091)
        let now = NSDate()
        if( now.timeIntervalSinceDate(dateTimeStamp!) > 0 ) {
            print("now > dateTimeStamp")
        } else {
            print("Nope")
        }
    

    【讨论】:

    • 实际上我不需要 expdate,我在 json web 令牌中有过期时间 (exp),它是数字日期格式的 1465891091。如何检查jwt过期时间是否结束?
    • let dateTimeStamp = NSDate(timeIntervalSince1970:1465891091) 然后在答案中进行比较。
    • 谢谢。工作正常!
    猜你喜欢
    • 2015-07-29
    • 1970-01-01
    • 2013-06-25
    • 2012-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-29
    • 1970-01-01
    相关资源
    最近更新 更多