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发送,如下面代码:

  1. //http的get请求地址
  2. NSString *urlStr=[NSString stringWithFormat:@"https://192.168.1.157:8443/v1/sms/send/%@",self.username.text];
  3. NSURL *url = [NSURL URLWithString:urlStr];
  4. //自定义的request
  5. NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
  6. //请求过期时间
  7. request.timeoutInterval = 10;
  8. //get请求
  9. request.HTTPMethod = @"GET";
  10. //配置用户名 密码
  11. NSString * str = [NSString stringWithFormat:@"%@:%@",@"lairen.com",@"sdclean.com"];
  12. //进行加密  [str base64EncodedString]使用开源Base64.h分类文件加密
  13. NSString * str2 = [NSString stringWithFormat:@"Basic %@",[str base64EncodedString]];
  14. [request setValue:str2 forHTTPHeaderField:@"Authorization"];
  15. AFHTTPRequestOperation *op=[[AFHTTPRequestOperation alloc]initWithRequest:request];
  16. //设置返回数据为json数据
  17. op.responseSerializer= [AFJSONResponseSerializer serializer];
  18. //发送网络请求
  19. [op setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
  20. NSLog(@"%@",responseObject);
  21. } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
  22. NSLog(@"%@",error);
  23. }];
  24. //请求完毕回到主线程
  25. [[NSOperationQueue mainQueue] addOperation:op];

使用Basic Auth认证方式,AFN发送网络请求就是上述代码的格式,其中代码的一些难懂的点,我在下图做了注释;

我注释的第一个是用户名,第二个是密码,这个使我们Basic Auth认证方式必须设置的请求头,然后第三个呢是我们为了我确保安全把用户名和密码的字符串进行了Base64加密,使用的2个文件是开源的Base64.h  Base64.m 。github上面就可以下载。

上述代码中的这行是对字符串进行的加密,记住是使用的Base64.h分类方法进行的加密,一定要先导入Base64.h文件才可以这样加密。

  1. [str base64EncodedString]
  1. NSString * str2 = [NSString stringWithFormat:@"Basic %@",[str base64EncodedString]];

到这里我们的Basic Auth认证方式就讲完了,怎么样,很简单吧。

 

ios开发使用Basic Auth 认证方式的更多相关文章

  1. Http basic Auth 认证方式帮助类

    BasicAuthenticationUtil import java.io.IOException; import java.security.MessageDigest; import javax ...

  2. iOS AFNetWorking下得Basic Auth认证请求方式

    我新入职了一家公司,做了一个项目,服务器的大哥说他采用的是Basic Auth认证请求方式,一般我们用的都是OAuth的认证方式,下面我们就对比一下这两种认证方式 百度百科得到如下 Basic Aut ...

  3. HttpClient 三种 Http Basic Authentication 认证方式,你了解了吗?

    Http Basic 简介 HTTP 提供一个用于权限控制和认证的通用框架.最常用的 HTTP 认证方案是 HTTP Basic authentication.Http Basic 认证是一种用来允许 ...

  4. java 发送带Basic Auth认证的http post请求

    构造http header private static final String URL = "url"; private static final String APP_KEY ...

  5. java 发送带Basic Auth认证的http post请求实例代码

    构造http header private static final String URL = "url"; private static final String APP_KEY ...

  6. 精讲RestTemplate第9篇-如何通过HTTP Basic Auth认证

    本文是精讲RestTemplate第9篇,前篇的blog访问地址如下: 精讲RestTemplate第1篇-在Spring或非Spring环境下如何使用 精讲RestTemplate第2篇-多种底层H ...

  7. 【Xamarin 挖墙脚系列:IOS 开发界面的3种方式】

    原文:[Xamarin 挖墙脚系列:IOS 开发界面的3种方式] xcode6进行三种基本的界面布局的方法,分别是手写UI,xib和storyboard.手写UI是最早进行UI界面布局的方法,优点是灵 ...

  8. Etcd安全配置之Basic Auth认证

    <中小团队落地配置中心详解>文章中我们介绍了如何基于Etcd+Confd构建配置中心,最后提到Etcd的安全问题时说了可以使用账号密码认证以达到安全访问的目的,究竟该如何开启认证以及怎么设 ...

  9. 怎样实现IOS开发中的数据存储方式

    iOS 开发中,一般有如下几种数据存储方式.需要根据具体的业务场景,选择 合适的数据存储方式. (1)  用户默认设置 – 这种情况通常不需要用户干预,如游戏通关信息,Video 播放记录,或者 Ap ...

随机推荐

  1. ES6 class继承

    ES6 class继承 class类的继承 class可以通过extends关键字实现继承,这笔ES5的通过修改原型连实现继承要清晰和方便很多. class Point{ } class ColorP ...

  2. [转载] OpenCV2.4.3 CheatSheet学习(一)

    OpenCV向MATLAB靠拢,图像的操作方法变得不那么C了,更m了一些.比如,MATLAB中的常用函数imshow.imread.imwrite函数在OpenCV中已经有了同名的兄弟. 此外,Ope ...

  3. Hadoop IO 特性详解(1)【数据完整性】

    本文结合hadoop : the definitive guide精心而作,包含作者的心血,希望可以帮助大家理解一点hdfs的皮毛,足矣.(charles@xingbod.cn) hadoop本身自带 ...

  4. Go之路一

    一.声明变量 var a int var b string var c []float32 var d func() bool var e struct{ x int } 第1行,声明一个整型类型的变 ...

  5. 【python之路41】web框架

    一.web框架介绍 一共有两种web框架 1.既包含socket又能逻辑处理 tornado框架 2.只能处理逻辑 Django bottle flask  二.web框架的本质 众所周知,对于所有的 ...

  6. Hibernate - HHH000352: Unable to release batch statement

    这是hibernate的一个bug,具体看https://hibernate.atlassian.net/browse/HHH-11732?attachmentViewMode=list When u ...

  7. Google自带截图工具的使用

    转载自:http://chromecj.com/utilities/2017-12/859.html

  8. nvm与nrm

    nvm:切换Node版本   nrm:管理npm包的镜像源 nvm的安装,可以参考官网,windows系统直接https://github.com/coreybutler/nvm-windows/re ...

  9. centos6.5 zabbix2.2 亲测安装

    因为需要做测试,调试.需要安装zabbix.  然后自己新弄了一个 centos6.5 minimal版本,从头来了一遍. 1.先安装LAMP的环境还有一些基本环境. yum -y install g ...

  10. 关于在eclipse中安装各种插件的问题

    在eclipse中安装php插件的方法 参考转载链接:eclipse 安装php插件 并配置环境 elipse的php插件地址:https://www.eclipse.org/pdt/ 以下可能会用到 ...