iOS - 关于登陆后获取访问服务器通行证 (Token / session)

来源:互联网 发布:太原理工软件工程学院 编辑:程序博客网 时间:2024/05/07 06:26


上班一段时间 遇到过不同的服务器人员 就会有不同访问权限的要求 

有的人要用Token噜 有的人要用session噜 现在庒美丽姐姐告诉你这两种方法的解决方案噜 


1⃣️: Token  

一般当你登陆成功,服务器人员将直接返回给你一个Token串(每次登陆获取的都是不同的值),获取之后,记得用NSUserDefault把这个通行证存起来,这样全局都可以使用,下次登陆,只要更新NSUserDefault里面的value值就可以了。或者你们有什么好方法存取,只要可行都是可以的噜。


模拟一个登陆成功后 服务器返回的参数:

返回:{  "status": true,              /* 表示登入成功 */  "user_id": "1",  "user_name": "Sue",  "token": "OZKrPw-3fxHJ8attaHhuvRZJ25B24IUBFPJPx-RN11x.eHmXpLGE6dLfLaicbLVp"           /** 这是所有商户API的通行码(Access Token),需要储存下来 **/}

用您能想到的方法保存下来 可以用NSUserDefault 也可以存档 看你们喜欢!



2⃣️ Session

    AFHTTPSessionManager *mgr = [AFHTTPSessionManager manager];        mgr.requestSerializer.timeoutInterval = 7;        [mgr POST:loginURL parameters:@{@"phone":phoneNum,@"password":password,@"phone_type":@"1",@"udid":@"cbx1323l4nvbk42x2g3h4v2k34c23c"} progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {            NSLog(@"%@",responseObject);                        NSHTTPURLResponse * response = (NSHTTPURLResponse *)task.response;        NSLog(@"%@",response.allHeaderFields);                //获取到请求头文件 里面包含着session的信息        NSDictionary * resposeDic = response.allHeaderFields;                NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];        //具体字典里面的key命名是什么 还是得按照你们伟大的服务器人员来        [defaults setObject:resposeDic[@"Session_ID"] forKey:@"Session_ID"];        [defaults synchronize];       } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {        NSLog(@"登陆超时");                block(@{@"error":@"1"});            }];    


//下次使用 只要        NSUserDefaults *defaults1 = [NSUserDefaults standardUserDefaults];        NSString * session = [defaults1 objectForKey:@"Session_ID"];

//删除        [[NSUserDefaults standardUserDefaults] removeObjectForKey:@"Session_ID"];        [[NSUserDefaults standardUserDefaults] synchronize];


所以 遇到喜欢用Token的服务器人员 真是要贴心地给一个么么哒啦 微笑  

还有 哪里说错了 农村小妹请高手指正 谢谢!微笑



1 0
原创粉丝点击