如何检查访问令牌是否仍然有效?

时间:2012-08-24 04:22:30

标签: ios asynchronous afnetworking

我对ios dev有点新意,如果用户已获得访问令牌授权,我正在尝试禁用按钮。我只是不知道是否有一种干净的方式。现在我在viewWillAppear中检查了调用api客户端对象isAuthorized:它返回一个bool并将按钮设置为yes / no。在isAuthorized中,如果存在访问令牌,我会进行测试http请求,但由于我必须等待完成块,因此时间关闭,按钮在不应该被禁用时被禁用。我应该设置NSNotification还是应该在viewWillAppear中而不是在客户端中进行测试http请求?或者有更好的解决方案吗?

由于

1 个答案:

答案 0 :(得分:1)

首先,好的是您的视图控制器只与“客户端”对象进行通信,并且客户端对象与服务器进行通信。这是正确的布局。现在如何设计UI部分:

  • 您的客户端对象需要内部意义上的“我的授权是当前的吗?”这可能意味着它已经检查了一次,或者在最后X分钟检查了它。取决于你的情况。

  • 当您致电isAuthorized时,如果身份验证不是最新的,您会立即返回NO然后提出请求。

  • 当请求进入时,您拨打setAuthorized:,这将发布KVO通知。

  • 您的视图控制器KVO会观察isAuthorized并根据需要更新按钮。 (或者,您可以使用委托方法或通知。)

如果您想区分“未授权”和“我不知道”,只需创建3选项枚举和方法authorizationState而不是isAuthorized