我们app的开发通常有2种认证方式 一种是Basic Auth,一种是OAuth;现在普遍还是使用OAuth的多,而使用Basic Auth认证的少,正好呢我今天给大家介绍的就是使用的比较少的Badic Auth认证方式,这种认证方式开发和调试简单, 没有复杂的页面跳转逻辑和交互过程,更利于发起方控制。然而缺点就是安全性更低,不过也没事,我们可以使用https安全加密协议,这样才更安全。
网站建设哪家好,找创新互联!专注于网页设计、网站建设、微信开发、微信小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了水城免费建站欢迎大家使用!
我使用的是AFNetworking发送的网络请求,因此我们用Basic Auth认证方式就不能再使用AFN的默认的GET或者POST请求,而是自己定义的NSMutableRequest请求,使用AFN发送,如下面代码:
[objc] view plain copy
//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认证方式就讲完了,怎么样,很简单吧。