PhP oauth2.0 教程,Oauth 2.0 教程(1) 授权流程及角色

Oauth的O即Open,Oauth代表开放授权

做过微信公众平台开发的应该知道,在微信中网页授权中有如下流程:

Setp1 将用户引导到微信的授权页面

Setp2 用户点击同意授权,那么微信服务器会重定向到您设置的回调地址,并附带code

Setp3 您通过code,向微信服务器后端发起http请求,去获取access_token

Setp4 您通过access_token去调用微信提供的相关接口

Oauth 2.0中的关键角色:

资源拥有者

第三方软件

授权服务器

受保护的资源

我们再来梳理下角色和流程,首先,我们作为开发者(第三方软件),小明是我平台的新用户,我现在的需求是获取小明的基本资料(受保护的资源)来注册到我平台的会员,那么现在小明的资料在微信服务器内部,我们作为开发者根本读取不到,但微信为我们提供了一个入口,即只要经过用户(资源拥有者)同意,我们就能拿到资源拥有者的相关数据。

既然需要用户同意,那么我们首先就把小明重定向到微信提供的授权页面,让小明点击同意授权,然后微信授权服务通过浏览器向我们指定的redirect_url返回给我们一个code,即授权码,我们拿到code,再调用接口去获取access_token一个访问令牌,通过访问令牌(access_token)再去调用获取基本资料的接口。

为什么微信授权服务不直接把access_token返回给我们,而要通过授权码间接获取?因为access_token是非常机密的信息,不能通过浏览器暴露。如果将access_token像code一样返回我们,会造成安全问题(数据被劫持等),我们主动去获取access_token比被动返回access_token安全性高得多。而code能允许被浏览器传递是因为code有很短的有效期,即使你在有效期内获取了code,但你获取access_token还需要开发者的appid等相关机密数据。因此有较高的安全性。

(本节完)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值