开发者社区> 问答> 正文

OSS STS鉴权模式的Token更新问题


id credential = [[OSSFederationCredentialProvider alloc] initWithFederationTokenGetter:^OSSFederationToken * {    NSURL * url = [NSURL URLWithString:[NSString stringWithFormat:@ "%@%@",Base_API,GetSTSToken_API]];NSMutableURLRequest *request=[NSMutableURLRequest requestWithURL:url]; //默认为get请求request.timeoutInterval= 10.0; //设置请求超时为10秒request.HTTPMethod=@ "POST"; //设置请求方法OSSTaskCompletionSource * tcs = [OSSTaskCompletionSource taskCompletionSource];NSURLSession * session = [NSURLSession sharedSession];NSURLSessionTask * sessionTask = [session dataTaskWithRequest:requestcompletionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { if (error) {[tcs setError:error]; return;}[tcs setResult:data];}];[sessionTask resume];[tcs.task waitUntilFinished]; if (tcs.task.error) {
// NSLog(@"get token error: %@", tcs.task.error);return nil;} else {NSDictionary * object = [NSJSONSerialization JSONObjectWithData:tcs.task.resultoptions:kNilOptionserror:nil];OSSFederationToken * token = [OSSFederationToken new];token.tAccessKey = [object[@"Credentials"] objectForKey:@"AccessKeyId"];token.tSecretKey = [object[@"Credentials"] objectForKey:@"AccessKeySecret"];token.tToken = [object[@"Credentials"] objectForKey:@"SecurityToken"];token.expirationTimeInGMTFormat = [object[@"Credentials"] objectForKey:@"Expiration"];return token;}}];
文档上说能根据过期时间自动更新token,但是我发现这个block每次都会执行,不是应该到了过期时间才会执行吗?不知道是什么原因,请大家帮帮忙。。。
是过期时间传递的不对吗?过期时间是阿里接口返回的。。。

展开
收起
正直的豆豆 2016-10-14 12:21:49 7505 0
1 条回答
写回答
取消 提交回答
  • ReOSS STS鉴权模式的Token更新问题
    可以直接参照oss提供的sdk来写, 在阿里云官网 -> oss->sdk手册,里面的代码可以直接下来。 还有如果有log你可以尽量提供一下
    2016-10-14 16:28:31
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
OSS运维进阶实战手册 立即下载
《OSS运维基础实战手册》 立即下载
OSS运维基础实战手册 立即下载