ios开发使用Basic Auth 认证方式
http://blog.csdn.net/joonchen111/article/details/48447813
我们app的开发通常有2种认证方式 一种是Basic Auth,一种是OAuth;现在普遍还是使用OAuth的多,而使用Basic Auth认证的少,正好呢我今天给大家介绍的就是使用的比较少的Badic Auth认证方式,这种认证方式开发和调试简单, 没有复杂的页面跳转逻辑和交互过程,更利于发起方控制。然而缺点就是安全性更低,不过也没事,我们可以使用https安全加密协议,这样才更安全。
我使用的是AFNetworking发送的网络请求,因此我们用Basic Auth认证方式就不能再使用AFN的默认的GET或者POST请求,而是自己定义的NSMutableRequest请求,使用AFN发送,如下面代码:
- //http的get请求地址
- NSString *urlStr=[NSString stringWithFormat:@"https://192.168.1.157:8443/v1/sms/send/%@",self.username.text];
- NSURL *url = [NSURL URLWithString:urlStr];
- //自定义的request
- NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
- //请求过期时间
- request.timeoutInterval = 10;
- //get请求
- request.HTTPMethod = @"GET";
- //配置用户名 密码
- NSString * str = [NSString stringWithFormat:@"%@:%@",@"lairen.com",@"sdclean.com"];
- //进行加密 [str base64EncodedString]使用开源Base64.h分类文件加密
- NSString * str2 = [NSString stringWithFormat:@"Basic %@",[str base64EncodedString]];
- [request setValue:str2 forHTTPHeaderField:@"Authorization"];
- AFHTTPRequestOperation *op=[[AFHTTPRequestOperation alloc]initWithRequest:request];
- //设置返回数据为json数据
- op.responseSerializer= [AFJSONResponseSerializer serializer];
- //发送网络请求
- [op setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
- NSLog(@"%@",responseObject);
- } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
- NSLog(@"%@",error);
- }];
- //请求完毕回到主线程
- [[NSOperationQueue mainQueue] addOperation:op];
使用Basic Auth认证方式,AFN发送网络请求就是上述代码的格式,其中代码的一些难懂的点,我在下图做了注释;
我注释的第一个是用户名,第二个是密码,这个使我们Basic Auth认证方式必须设置的请求头,然后第三个呢是我们为了我确保安全把用户名和密码的字符串进行了Base64加密,使用的2个文件是开源的Base64.h Base64.m 。github上面就可以下载。
上述代码中的这行是对字符串进行的加密,记住是使用的Base64.h分类方法进行的加密,一定要先导入Base64.h文件才可以这样加密。
- [str base64EncodedString]
- NSString * str2 = [NSString stringWithFormat:@"Basic %@",[str base64EncodedString]];
到这里我们的Basic Auth认证方式就讲完了,怎么样,很简单吧。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具