在iOS swift应用程序上续订用户令牌

时间:2016-01-04 21:03:09

标签: ios swift authentication

我需要更新用户令牌,发送到数据库以验证并处理来自应用程序的请求。

用户令牌每个月都会过期以确保安全,因此我必须每隔20天或25天拨打续订令牌的功能。

我已经考虑过使用NSTimer但是当应用程序关闭时它会停止,因此不是解决方案。

你知道我该怎么办?

2 个答案:

答案 0 :(得分:3)

这样做

// Get current date
let date = NSDate()
// Add 20 days to it
let tokenDaysAdded: NSDate = date.dateByAddingTimeInterval(Double(60 * 60 * 24 * 20)) as! NSDate
// Save it to your NSUserDefaults
let defaults = NSUserDefaults.standardUserDefaults()
defaults.setValue(tokenDaysAdded, forKey: "token")

// Get the token date
let tokenDate = defaults.objectForKey("token")!
// Get current date
let now: NSDate = NSDate()

// Check if tokenDaysAdded is earler than today, then you´re ok
if tokenDaysAdded.earlierDate(now) == tokenDate as! NSObject {
    // you´re ok
}
// Else you need to update the token since tokenDaysAdded is greater than todays date
else {
    // tokenDaysAdded is earlier
    // Send notifcation about updating the token
}

答案 1 :(得分:0)

存储令牌上次更新的日期或有效时的日期,并在应用程序再次打开时续订令牌。这是你在iOS上实现这一目标的唯一方法。你不能在后台运行一个长时间的计时器,系统会杀掉它。

另一种方法是在令牌即将过期或已过期时发送远程通知,然后续订令牌(它将唤醒应用)。