美文网首页
iOS session验证

iOS session验证

作者: 呦释原点 | 来源:发表于2016-12-20 11:15 被阅读1041次

    和后台一起做demo,验证验证码后台需要根据session分辨我的验证码是iOS传的还是android传的。做一下小记录。

    iOS中的session存放在cookie中,cookie就像多个字典.其中的一个放着我们要的session。

    我需要的那条cookie打印出来是:

    <NSHTTPCookie version:0 name:"JSESSIONID" value:"6A33E2CA6AB31D11DC8AB1A63CA0DF76" expiresDate:(null) created:2016-12-20 02:40:46 +0000 (5.03894e+08) sessionOnly:TRUE domain:"192.168.1.100" path:"/webspring/" isSecure:FALSE>

    其中JSESSIONID对应的值6A33E2CA6AB31D11DC8AB1A63CA0DF76就是我想要的了,这个是后台需要验证的东西。

    我的做法是在第一次请求成功后,拿到session的值,保存下来

    NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage];

    DDLog(@"cookieStorage: %@", cookieStorage);

    for (NSHTTPCookie *cookie in [cookieStorage cookies]) {

    DDLog(@"-----cookie: %@", cookie);

    if ([

    cookie.name isEqualToString:@"JSESSIONID"]) {

    NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];

    [userDefaults setValue:cookie.value forKey:@"JSESSIONID"];

    }

    }

    然后在下一次请求前把得到的session值赋值给session

    NSMutableDictionary *cookieProperties = [NSMutableDictionary dictionary];

    [cookieProperties setObject:@"JSESSIONID" forKey:NSHTTPCookieName];

    NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];

    [cookieProperties setObject:[userDefaults valueForKey:@"JSESSIONID"] forKey:NSHTTPCookieValue];

    NSHTTPCookie *cookie = [NSHTTPCookie cookieWithProperties:cookieProperties];

    [[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie];

    然后后台就说我这session操作可以了。自己不是很懂,参考网址iOS开发session验证问题

    相关文章

      网友评论

          本文标题:iOS session验证

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