开放平台有两种认证方式,一种是Basic Auth,一种是OAuth。

关于OAuth1,OAuth2的异同  移步->> https://blog.csdn.net/qq_15028299/article/details/89028851

1、Basic Auth(HTTP Auth)
Basic Auth简单点说明就是每次请求API时都提供用户的username和password。【base64encode(username+":"+password)】
。这种方式优点和缺点都很明显。
优点:
u 使用非常简单,
u 开发和调试工作简单,
u 没有复杂的页面跳转逻辑和交互过程;
u 更利于发起方控制;
缺点:
u 安全性低,每次都需要传递用户名和密码,用户名和密码很大程度上存在被监听盗取的可能;
u 同时应用本地还需要保存用户名和密码,在应用本身的安全性来说,也存在很大问题;
u 开放平台服务商出于自身安全性的考虑(第三方可以得到该服务商用户的账号密码,对于服务商来说是一种安全隐患),未来也会限制此认证方式(Twitter就计划在6月份停止Basic Auth的支持)
u 用户如果更改了用户名和密码,还需要重新进行密码校验的过程。
2、OAuth
OAuth为用户资源的授权提供了一个安全、开放的标准,将会是以后开发平台普遍遵守的,目前Twitter、Sina微博、豆瓣、Google等都提供对它的支持。它分为几个交互过程:
1)应用用APP KEY和APP SECRET换取OAuth_token;
2)应用将用户引导到服务商的页面对该OAuth_token进行授权(可能需要输入用户名和密码);
3)服务商的页面跳转回应用,应用再根据参数去服务商获得Access Token;
4)使用这个Access Token就可以访问API了。
上述过程如下图所示:
OAuth认证过程
OAuth的优点:
u 安全性高,用户的账户和密码只需要提供一次,而且是在服务商的页面上提供,防止了Basic Auth反复传输密码带来的安全隐患;
u Access Token访问权限仅限于应用,被窃取不会影响用户在该服务商的其他服务;
u Access Token即使被监听丢失了随时可以撤销,不像密码丢失可能就被别人篡改了;
u 用户修改了密码也不会影响该应用的正常使用。
OAuth和Basic Auth两种方式的区别, OAuth是一种比较通用的,安全的认证方式,不需要用户名密码,只需要用户授权;basic auth是一种基于用户名密码的认证,每次访问都需带上用户的用户名密码。

Basic Auth 和 OAuth的区别相关推荐

  1. Nginx配置Basic Auth登录认证的实现方法

    这篇文章主要介绍了Nginx配置Basic Auth登录认证的实现方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧 有时候我们通过nginx搭建了一台文件服务器, 一般 ...

  2. 配置kubernetes服务basic auth

    由于一些内部服务访问并不需要鉴权,如kubernetes-dashboard.traefik-ui,所以当我们想通过外网域名访问的时候会有安全问题.这里我们可以为服务配置basic auth,访问时需 ...

  3. nginx basic auth配置踩坑记

    nginx的basic auth配置由ngx_http_auth_basic_module模块提供,对HTTP Basic Authentication协议进行了支持,用户可通过该配置设置用户名和密码 ...

  4. Nginx下配置Http Basic Auth

       nginx basic auth指令 第一条语句: 语法:     auth_basic string | off; 默认值:     auth_basic off; 配置段:     http ...

  5. 微信小程序中通过Basic Auth传递token

    npm导入用于Base64加密的工具包js-base64 // package.js "dependencies": {"js-base64": "^ ...

  6. 【HTTP】HTTP Authorization 之 Basic Auth 和 X-Auth-Token

    Basic Authorization 认证方法 https://segmentfault.com/a/1190000017563615 HTTP Basic Authorization https: ...

  7. 用 PHP 进行 HTTP 认证,Basic Auth

    实现基本的简单Basic Auth认证. php手册 可以用 header() 函数来向客户端浏览器发送"Authentication Required"信息,使其弹出一个用户名/ ...

  8. 基于 Traefik 的 Basic Auth 配置

    前言 Traefik是一个现代的HTTP反向代理和负载均衡器,使部署微服务变得容易. Traefik可以与现有的多种基础设施组件(Docker.Swarm模式.Kubernetes.Marathon. ...

  9. Rest Api 项目添加 Basic Auth 认证

    title: Rest Api 项目添加 Basic Auth 认证 date: 2022-10-10 22:09 tags: [Java,Spring Boot,Rest Api,Basic Aut ...

最新文章

  1. Asp.Net下通过切换CSS换皮肤
  2. 美国计算机科学厉害的大学,求推荐美国综合排名40~70间计算机科学较好的大学...
  3. gparted 不能起作用的时候,用fdisk
  4. PageRanke算法
  5. 2018-08-01-weekly
  6. superset出现A valid API access token is required to use Mapbox data
  7. 【Python生成器与迭代器的区别】
  8. WebSocket介绍和Socket的区别
  9. 使用 做签名的post_腾讯IMWeb团队是如何使用 NodeJS 实现 JWT 原理
  10. A Zero Flow Entry Expiration Timeout P4 Switch
  11. jfreechart环形图完美实现
  12. winform仿QQ聊天气泡(c#代码+GDI绘图)
  13. servlet笔试题java,Java推荐!Servlet面试题和答案汇集
  14. 买哪个股票稳赚,三类股票,可以买了
  15. weblogic安装部署
  16. 【博士论文】深度学习的对抗攻击与鲁棒性测评
  17. xlsx表格怎么筛选重复数据_excel表格如何过滤筛选重复项内容
  18. 百度地图转换腾讯地图 php,用PHP实现腾讯地图和百度地图的相互转换范例
  19. IMT和北京大学微纳电子学研究院持续开展战略合作,三位优秀学生获2017年度MEMS专项奖学金
  20. java描述空间直线_java实验作业类的定义与描述

热门文章

  1. 信仰会给你无穷的力量
  2. 对于初学者来说,数据科学家需要具备哪些基本技能?
  3. 汇编语言程序设计——显示Power Idea公司的数据
  4. (二)微服务保护——限流规则
  5. 《Kotlin从零到精通Android开发》欧阳燊(二)
  6. 微信云托管如何实现一套代码对应多个环境
  7. 盐城工学院纺织工程收计算机,盐城工学院2020年录取分数线(附2017-2020年分数线)...
  8. 使用C语言,模拟路由器的工作过程
  9. apk里的html文件怎么打开,apk文件怎么打开
  10. 我的个人时间管理方法