美文网首页
关于token的处理

关于token的处理

作者: codermali | 来源:发表于2017-09-08 01:09 被阅读335次

关于token的处理

神盾养车项目,token每两个小时就会失效,那么我们就会经常出现token失效的情况.那么我们就需要处理.现在有两个思路:

  • 在发送请求之前判断token是否失效.如果失效,那么先去刷新token;如果没有失效,那么继续请求.这里我们就需要解析token,来判断token是否超时.
//解析token,判断token是否超时
- (BOOL)analysisToken:(NSString *)token
{
    //1.1 将token分隔成三部分
    NSArray *tokenArr = [token componentsSeparatedByString:@"."];
    //1.2 拿到我要解析的部分(第二部分)
    NSString *tokenStr = tokenArr[1];
    //1.3 解密
    NSData *tokenDecodeData = [[NSData alloc] initWithBase64EncodedString:[tokenStr stringByAppendingString:@"="] options:NSDataBase64DecodingIgnoreUnknownCharacters];
    NSDictionary *tokenDecodeDic = [NSJSONSerialization JSONObjectWithData:tokenDecodeData options:0 error:nil];
    
    //2.4获得过期时间戳
    NSString *expTimeStr = tokenDecodeDic[@"exp"];
    NSTimeInterval expTimeInterval = [expTimeStr integerValue];
    
    //2.5获得当前时间戳
    NSDate *currentDate = [NSDate date];
    NSTimeInterval currentTimeInterval = [currentDate timeIntervalSince1970];
    
    //2.6 获得两个时间戳之间的间隔
    NSInteger timeinteval = (expTimeInterval - currentTimeInterval) / 60 / 60;
    
    if (timeinteval >= 2)
    {
        return YES;
    }
    else
    {
        return NO;
    }
}
  • 根据请求的返回值来判断token是否失效,如果失效,那么先去刷新token,然后重新发送请求.但是,这里会有一个问题,就是怎么能在刷新token之后重新请求,AFN没有直接提供方法,我们可以在task里面拿到请求的各种数据.不过这样重新发送请求会有一次多余的操作,而且在请求中发送请求,感觉不太好,所以放弃了.
    task.originalRequest.HTTPMethod;
    task.originalRequest.HTTPBody;
    task.originalRequest.URL;

相关文章

  • 关于token的处理

    关于token的处理 神盾养车项目,token每两个小时就会失效,那么我们就会经常出现token失效的情况.那么我...

  • vue前端权限管理

    根据token处理主页的访问权限问题(获取token以后的处理) 如果经完成了登录的过程,并且存储了token,但...

  • Token处理

    令牌存储到redis: 二、使用JWT(JSON WEB TOKEN)替换默认token特点:1.自包含:令牌本身...

  • 登录token过期时间

    由于项目中对token设置两小时过期时间,导致经常大批量处理消息体带有token处理失效。之前对接口返回token...

  • token验证的方法

    统一token处理 排除token校验注解类为不需要校验 token 的方法定义注解@Documented //标...

  • Golang Dockerfile 多阶编译,并拉取私有库

    Dockerfile 关于 PRIVATE-TOKEN: TOKEN 获取:https://www.jianshu...

  • Token过期处理

    Token用于进行接口鉴权,但是Token具有由后端设置的过期时间,当Token过期以后,就无法再请求数据了项目中...

  • Lucene基础篇-基本概念

    基本概念 Token Token在Lucene与在自然语言处理(NLP,Natural-language proc...

  • retrofit+okhttp+rxjava处理ouanth2刷

    retrofit+okhttp+rxjava处理ouanth2 token过期时,请求刷新token并重新请求原接...

  • iOS推送通知

    注册推送 注册token回调 推送消息处理

网友评论

      本文标题:关于token的处理

      本文链接:https://www.haomeiwen.com/subject/weowjxtx.html