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. 手把手教你把Python应用到实际开发 不再空谈语法

    手把手教你把Python应用到实际开发 不再空谈语法 整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频的感受,单论单个知识点课程本身没问 ...

  2. Spring+quartz集群解决多服务器部署定时器重复执行的问题

    一.问题描述 Spring自带的Task虽然能很好使用定时任务,只需要做些简单的配置就可以了.不过如果部署在多台服务器上的时候,这样定时任务会在每台服务器都会执行,造成重复执行. 二.解决方案 Spr ...

  3. stream的filter用法

    Person p1 = new Person("张三", new BigDecimal("23.0"));Person p2 = new Person(&quo ...

  4. UI2Code智能生成Flutter代码--整体设计篇

    摘要: UI2CODE项目是闲鱼技术团队研发的一款通过机器视觉理解+AI人工智能将UI视觉图片转化为端侧代码的工具. 背景: 随着移动互联网时代的到来,人类的科学技术突飞猛进.然而软件工程师们依旧需要 ...

  5. Django项目:CRM(客户关系管理系统)--20--12PerfectCRM实现King_admin分页上下页

    {#table_data_list.html#} {## ————————08PerfectCRM实现King_admin显示注册表的字段表头————————#} {% extends 'king_m ...

  6. LUOGU P3024 [USACO11OPEN]奶牛跳棋Cow Checkers

    题目描述 One day, Bessie decides to challenge Farmer John to a game of ‘Cow Checkers’. The game is playe ...

  7. TZ_05_Spring_基于AOP的xml配置

    1.分析    1>首先我们有一个Service需要增强 将Service增加一个日志(Logger)          2>写了一个日志的通知并且它可以对Service进行日志增强   ...

  8. BootStrap框架选择

    1. mentronic4.0 效果非常好,但是商业版收费 下面是一个.net的系统,基于mentronic4.0开发,感觉不错 http://www.cnblogs.com/guozili/p/34 ...

  9. windows 标准错误重定向

    最近在windows上运行tensorflow的时候,出现很多stderr 的信息,干扰了正常的输出:所以我们需要使用操作把这些输出屏蔽: 参考链接:https://support.microsoft ...

  10. Bootstrap常见的类

    一.标题 h1,h2,h3,h4,h5,h6