iOS 服务端给我token 我怎么判断失效

这不是客户端的任务,你应该总是认为 token 是有效的,然后每次用到的时候都把它带过去给服务端,由服务端来判断失效。如果它告诉你已经失效了,你再把它清除。

App 向服务器发送登录请求之后会产生 cookie ,cookie 中包含这个 cookie 的expire date,可以用来判断你的登录有效时间。通常登录有效时间是由服务器端控制的。

朋友,我猜你的网络处理里,一定没有一套全局的错误处理机制,这个错误机制的工作主要是在你得到了

这是什么鬼

的数据时进行处理。

朋友,去看看你网络请求的代码吧,

不要看Api.getUserInfo

,不要去看

XXXNetwork getJSON

,不要被这些小把戏迷惑。用你的现代集成开发环境再往更深的地方跳几层,找到一个名字

类似- (void)connectionDidFinishLoading:(NSURLConnection *)connection

的方法。这里就是你放出去的请求回来的地方。顺着这里往下看,你应该会发现一个叫

completeBlock

的回调或者代理,下断点,发请求,顺着这里往前走,你的网络框架所作的一切都是在那里啊!你能看到的

json

、你要的

UIImage

都是在那里创建出来的。

朋友,这时你应该明白了吧?所谓的

网络层错误处理机制

就是在这里(或类似工作的地方)捕获错误数据,然后

大声的吼出来

。关掉这个网页,忘掉我回答的问题,去看看你用的框架的手册吧,上面写了这里该如何处理错误的数据。

PS:我猜你用的是AFNetworking

PPS:推荐看看这个库的代码:https://github.com/nst/STHTTPRequest/,只有薄薄一层呦

做过微信相关的应用开发就知道,微信登录需要通过

code

去拿

access token

,同时会给一个

refresh token

给你,然后好像在2小时内,你可以用

access token

去拿用户资料啊各种的接口调用。那么问题来了,access token 失效了你去请求用户资料接口,微信服务器自然会返回你一个

access token

已失效的response给你,那么既然将到了这里,我还想将

refresh token

的作用说一下,这时候,你的

access token

已失效,那么使用微信提供的接口,使用

refresh token

去刷新你的

access token

,这时候微信服务端会在给你派发一个 新的

access token

,有效期又是一个新的两小时。

说了这么多,无非就是一句话,你token失效与否是需要你请求一下 服务端的,由它通过response告知你失效与否。

带tkoen请求的时候如果失效会请求失败,这时候可以清除token,这个需要全局的判断