oauth2 增加token 返回参数_第 87 天:Python Web开发 OAuth2.0 简介

f482142efe741d0501717336991e4063.png

我们经常看到或者用到一些可以使用微博、微信、支付宝等账号登录的应用,还有一些微博助手、微信公众号助手、客户端之类的东西,这些是怎么做的呢,背后的原理是什么呢?为什么公众号配置起来那么繁琐呢?什么是 access token、refresh token?等等,今天我们来了解下开放式授权模式 OAuth

随着互联网的发展,各种应用相互交叉,到处需要用户登录,信息安全成为了不可回避的问题,应用需要扩展,用户需要更好的体验,信息需要更安全的保障,为了满足这些需求,互联网技术不断推陈出新,从通信安全,到各种协议框架,有无数的解决方案。

其中 OAuth 框架是很闪耀的一个,一经推出,就得到各大互联网公司的积极响应,到2010年推出了 OAuth 2.0, 不但修补了 1.0 的安全漏洞,而且简化了授权流程,得到更广泛的应用,成为了主流。从 PC 到 Web,从移动端到物联网,越来越多的应用构建在 OAuth 框架之上,那么 OAuth 是什么呢?

OAuth 是什么

OAuth 框架提供了一种认证和授权机制,可以让用户将其受保护的资源授权给其他应用来访问或者使用。

阮一峰老师对 授权有个形象比喻:授权机制相当于你给快递员一个临时密码(授权),快递员可以使用这个密码打开小区门禁,将快递送到你家门口,而后临时密码将失效(详见参考链接)。

这个例子中,你就是 用户,小区是 受保护的资源,快递员是其他应用(第三方应用)。

如果没有这个机制:

  • 要么你就得去小区门口拿快递,不方便,
  • 要么就得告诉所有可能给你送快递的快递员门禁密码,不安全

有了 OAuth 框架(协议),既方便,又安全

OAuth2.0

这里不打算介绍 OAuth 1.0,原因是:

  • OAuth 1.0 存在安全漏洞
  • OAuth 1 和 后面的 OAuth 1a 交流流程比较复杂
  • OAuth 2.0 安全性好,应用更广泛

如果想了解更多关于 OAuth 的知识,请访问参考链接

角色

OAuth2.0 实际上就是让第三方服务获得用户在资源服务器上的授权的过程,会涉及到 4 种角色

  • 资源拥有者(Resource owner),即用户
  • 认证服务器(Authorization server),用来认证用户凭证,颁布授权码的服务器
  • 资源服务器(Resource Server),存放用户受保护的资源的服务器
  • 第三方应用(Client),也称之为客户端(后续皆称 客户端),需要得到用户授权,以便访问用户受保护的资源的应用程序

不是任何客户端都能得到授权的,在开通 OAuth 授权之前,需要先到认证服务器或者资源服务器上注册,注册成功会得到 appid 和 app_secret,用来向认证服务器表明应用的身份

角色之间关联

了解了 OAuth2.0 框架中的主要角色,有必要了解下角色之间关联关系

  • 认证服务器 和 资源服务器:通常来说,认证服务器和资源服务器同属于一个服务商,它们就有天生的关联,而且是内部的安全的,甚至它们可以部署在同一个服务器(Web 服务器)上
  • 用户 和 服务商:对于像 Github、微信这样的知名应用,用户会主动
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值