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

百度百科得到如下

Basic Auth简单点说明就是每次请求API时都提供用户的username和password。

OAuth为用户资源的授权提供了一个安全、开放的标准,将会是以后开发平台普遍遵守的。它分为几个交互过程:

1)应用用APP KEY和APP SECRET换取OAuth_token;

2)应用将用户引导到服务商的页面对该OAuth_token进行授权(可能需要输入用户名和密码);

3)服务商的页面跳转回应用,应用再根据参数去服务商获得Access Token;

4)使用这个Access Token就可以访问API了。

然而两种的优缺点呢,百度百科也给出了比较详细的答案

Basic Auth优点:使用非常简单,开发和调试工作简单,没有复杂的页面跳转逻辑和交互过程;更利于发起方控制;

缺点:安全性低,每次都需要传递用户名和密码,用户名和密码很大程度上存在被监听盗取的可能;同时应用本地还需要保存用户名和密码,在应用本身的安全性来说,也存在很大问题;开放平台服务商出于自身安全性的考虑(第三方可以得到该服务商用户的账号密码,对于服务商来说是一种安全隐患),未来也会限制此认证方式(Twitter就计划在6月份停止Basic Auth的支持),用户如果更改了用户名和密码,还需要重新进行密码校验的过程。

OAuth的优点:安全性高,用户的账户和密码只需要提供一次,而且是在服务商的页面上提供,防止了Basic Auth反复传输密码带来的安全隐患;Access Token访问权限仅限于应用,被窃取不会影响用户在该服务商的其他服务;Access Token即使被监听丢失了随时可以撤销,不像密码丢失可能就被别人篡改了;用户修改了密码也不会影响该应用的正常使用。

两种方式的对比多余的就不说了,Basic Auth有关我们iOS程序的呢有一下几点:

我们每次都要上传username和password。也就是说我们每次都要记录用户的username和password,并且保证每次发送的密码必须都是正确的(像我们服务器大哥会给我们生成一个token,然后当做用户名传给他,这种应该算是两种方式都有使用吧,也就是说用户每次更新密码的时候我都要向存本地)

那么使用Basic Auth的代码是什么样子的呢:

AFNetWorking的代码如下:

 

我们点进这个方法里面去

 

链接:http://www.jianshu.com/p/22c4c4fc3481

iOS AFNetWorking下得Basic Auth认证请求方式的更多相关文章

  1. ios开发使用Basic Auth 认证方式

    http://blog.csdn.net/joonchen111/article/details/48447813 我们app的开发通常有2种认证方式   一种是Basic Auth,一种是OAuth ...

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

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

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

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

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

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

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

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

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

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

  7. 第三节:总结.Net下后端的几种请求方式(WebClient、WebRequest、HttpClient)

    一. 前言 前端调用有Form表单提交,ajax提交,ajax一般是用Jquery的简化写法,在这里不再过多介绍: 后端调用大约有这些:WebCient.WebRequest.Httpclient.W ...

  8. HTTP Basic auth认证

    Basic 概述 Basic 认证是HTTP 中非常简单的认证方式,因为简单,所以不是很安全,不过仍然非常常用. 当一个客户端向一个需要认证的HTTP服务器进行数据请求时,如果之前没有认证过,HTTP ...

  9. httpclient进行basic auth认证

    private HttpClientContext context = HttpClientContext.create(); public void addUserOAuth(String user ...

随机推荐

  1. AOP在大规模软件开发项目中的应用(图)

    AOP在大规模软件开发项目中的应用(图) 本文的写作源于一个真实的大型软件开发项目,我们努力尝试在这个项目中推广应用AOP.在此我们将对曾经面临过的一些实际问题与困难进行分析,试图引发关于面向方面软件 ...

  2. 【树莓派】树莓派新版系统SSH连接被拒绝问题处理

    安装好新的版本树莓派(NOOBS_v2_4_0.zip)之后,直连显示器并接上网线,可以看到已经获取到动态IP地址了. 但是,此时使用xshell远程连接时,却一直连接不成功: [d:\~]$ Con ...

  3. 微信小程序 - 分包加载(独立分包)

    独立分包是小程序中一种特殊类型的分包,可以独立于主包和其他分包运行.从独立分包中页面进入小程序时,不需要下载主包.当用户进入普通分包或主包内页面时,主包才会被下载 将某些具有一定功能独立性的页面配置到 ...

  4. WebSocket【转】

    1.什么是WebSocket WebSocket 是一种自然的全双工.双向.单套接字连接.使用WebSocket,你的HTTP 请求变成打开WebSocket 连接(WebSocket 或者WebSo ...

  5. js 内置函数 内置对象

    1.内置函数 Object Array Boolean Number String Function Date RegExp Error 2.内置对象 Date JSON

  6. http 三次握手

    1.三次握手 目的:主要规避由于网络阻塞,传输不畅等原因导致服务器端端口一直被占用,无法释放端口资源.(想想假设只要一次就建立连接,服务器响应后浏览器若是没收到数据,等待一段时间后,网络超时,浏览器重 ...

  7. Influxdb数据存储

    环境: CentOS6.5_x64 InfluxDB版本:1.1.0 InfluxDB存储引擎看起来很像一个LSM Tree,它包含预写日志和类似存储在LSM Tree中的SSTables只读数据. ...

  8. CentOS 7 安装php5.6,Nginx,Memcached环境及配置

    安装php5.6版本以后不再需要安装Zend Guard,而是用yum命令安装php-opcache及php-pecl-apcu就可以有效的提高php执行速度. 1. 配置yum源 事先确认yum源的 ...

  9. jquery 如何获取有多个class名的元素

      1.情景展示 如何使用jquery获取带有多个class样式的元素? 2.解决方案 $("p.opinion.mb15.gray2e.max2line.mr20:contains('大摩 ...

  10. 〖Linux〗Kubuntu, the application 'Google Chrome' has requested to open the wallet 'kdewallet'解决方法

    每次打开Google都提示: the application 'Google Chrome' has requested to open the wallet 'kdewallet'... 原来是Go ...