zoukankan      html  css  js  c++  java
  • iOS AFNetWorking下得Basic Auth认证请求方式

    我新入职了一家公司,做了一个项目,服务器的大哥说他采用的是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

  • 相关阅读:
    git删除大文件
    正则表达式学习
    python小技巧集锦
    python的编译
    笔记本BIOS按键和启动项选择按键
    Ubuntu 不能识别U盘
    一文读懂Java 11的ZGC为何如此高效
    ELK原理与介绍
    使用uniapp之-在微信小程序内打开腾讯地图app或高德地图app
    使用Git多人协作开发时分支合并流程
  • 原文地址:https://www.cnblogs.com/isItOk/p/7098910.html
Copyright © 2011-2022 走看看