iOS后台访问令牌刷新

时间:2019-10-09 09:32:34

标签: ios access-token background-process refresh-token

我希望通过在后台刷新令牌来延长访问令牌的到期时间。当前的到期时间设置为30分钟(服务器端),并且该值不可更改,其想法是每29分钟我将调用一个刷新访问令牌的方法,以使访问令牌再保留1个半小时(表示访问令牌可以保持将近2个小时)。我已经读到,如果需要更多时间才能使用UIKit,则后台任务最多需要5秒钟才能完成,尽管这样做只会再花几分钟来完成所需的任务。

是否有任何特殊情况允许我在后台执行此操作,或者有更好的方法来执行此操作?谢谢您的帮助!

1 个答案:

答案 0 :(得分:-1)

在AppDelegate.swift中执行此操作。

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    // Override point for customization after application launch.
    Timer.scheduledTimer(timeInterval: (60.0 * 29.0), target: self, selector: #selector(self.doThisEvery29Min), userInfo: nil, repeats: true)
    return true
}

@objc func doThisEvery29Min () {
    if Constant.uToken != nil {
        ServiceManager.sharedInstance.RefreshTokens() {
            (result) in
            switch result {
            case .Success(let responce):
                // update token
            case .FailureDueToService(let error):
                print(error)
                break
            case .Failure(let error):
                print(error)
                break
            }
        }
    }
}