截至2015年1月27日,所采用版本为1.2.8,源地址:https://github.com/nxtbgthng/OAuth2Client
开源OAuth2.0 在ios上面的library OAuth2Client不算是一个好用的库,很多东西需要手工改,不过还好它底层的东西写的不错,给自己减轻了工作量。
但在最近测试refresh token的时候,却出现了一个让人非常抓狂的问题,就是有时候无法自动refresh token。
As we all know,从服务器获取token的时候,除了拿到一个access token之外,还会拿到refresh token和expire time。意思是如果超过了expire time,就用refresh token重新去获取token。但是问题就出来在,我第一次测试的时候,用虚拟机,wireshark监控,非常满意,超过expire time之后的第一次网络请求,它会自动先请求一次token。可是后来在真机上测试,加了一个每10秒上传一次位置的功能(同样需要token),却出现了问题,不能自动refresh。
后来再次在虚拟机上测试时,也是时好时坏,有时候能refresh,有时候却压根没有。后来自己排查,发现问题出现在OAuth2Client - Connection - NXOAuth2Connection.m中的-createConnection方法,原文如下:
- (NSURLConnection *)createConnection;
{
// if