2016-07-31 96 views
0

现在我将iOS应用程序与服务器连接起来。
为了在应用程序中使用服务器,应用程序需要访问令牌。
当用户登录时,他们获得带有刷新令牌的访问令牌。
因此登录后,用户不需要再登录。用户可以使用该应用程序而无需记录如Instagram或Facebook。 但是,应用程序必须每小时使用刷新令牌来更新/更新访问令牌,因为访问令牌在3600秒(1小时)内过期。 但是我怎样才能每个小时查询/更新刷新令牌/访问令牌? 我认为应用程序每小时都会自动执行此操作,即使在后台也是如此。 现在我可以使用Alamofire获得访问令牌。 但我不习惯使用连接服务器与应用程序。我如何使用刷新令牌自动获取iOS令牌/快捷令牌?(每小时)

我的应用程式适用于iOS并以Swift编码。

+0

你可以在你的AppDelegate的applicationDidBecomeActive函数中执行一个请求。每当您的应用程序将其状态从非活动状态(背景)更改为活动状态时,都会触发此功能。 –

+0

那么我该如何控制执行代码的时间? (我想每小时执行一次代码) – kimpro

+0

我会将NSDate保存到UserDefaults中,并将保存的NSDate与当前日期进行比较,如果它大于或等于一个小时,则执行对服务器的调用。您还可以选择执行对服务器的调用,服务器将为您执行此逻辑..如果您的应用程序针对多个平台,则更好方法 –

回答

0

当用户第一次打开应用程序时(前台),您可以刷新,然后启动计时器,例如55分钟。当计时器到期时,您可以刷新。当应用程序进入后台时会破坏计时器。不要指望应用程序应该在后台运行刷新,它不应该也没有理由。

以上就是你需要做的。当应用程序到达前台时,您可以改为检查当前令牌的有效时间,并决定不刷新并启动N-5分钟的计时器。你可以考虑如何通过改变定时器来运行每分钟的刷新失败和没有互联网连接...