1OAuth的简述

OAuthOpen Authorization,开放授权)是为用户资源的授权定义了一个安全、开放及简单的标准,第三方无需知道用户的账号及密码,就可获取到用户的授权信息,并且这是安全的。

2OAuth的原理

OAuth的机制原理讲解及开发流程

 

第一步:用户访问第三方网站,比如:就是你需要使用微信进行登录的网站;

第二步:你点击微信登录后,第三方网站将会连接并进行请求,比如:你点击登录后,第三方网站会跳转到微信平台,提示你进行登录;

第三步:你要进行授权第三方网站对你的信息访问的一个权限,比如:当微信登录成功后,微信会提示你,是否授权第三方Web访问你的用户基本信息或其他的资源信息,这时你点击授权即可;

第四步:授权后,第三方Web即可访问你刚才授权的资源信息,比如:你的微信基本信息-头像、昵称、性别等。

上述为原理,可能你还有疑惑,和标题不符,下面是OAuth2.0的认证流程

我们可以将认证分为以下三个步骤:

第一步:得到授权码code

第二步:获取access tokenopenid

第三步:获取用户信息

我们下面以微信的授权为例:

第一步:用户同意授权,获取code

在确保微信公众账号拥有授权作用域(scope参数)的权限的前提下(服务号获得高级接口后,默认拥有scope参数中的snsapi_base和snsapi_userinfo),引导关注者打开如下页面:

OAuth的机制原理讲解及开发流程

打开上述url后会在微信上弹出授权框,确认授权后,会自动跳转回调的url就是上述链接中填写的redirect_uri,并将code和state传入

OAuth的机制原理讲解及开发流程

第二步:通过code换取网页授权access_token

根据第一步拿到的code我们去获取token和openid

OAuth的机制原理讲解及开发流程

OAuth的机制原理讲解及开发流程

上述所获取token和基本的调用接口的token不一样,不是同一个token,这里获取的token只能获取用户的基本信息。

这里引申一个概念UnionID:

1、请注意,网页授权获取用户基本信息也遵循UnionID机制。即如果开发者有在多个公众号,或在公众号、移动应用之间统一用户帐号的需求,需要前往微信开放平台(open.weixin.qq.com)绑定公众号后,才可利用UnionID机制来满足上述需求。

2、UnionID机制的作用说明:如果开发者拥有多个移动应用、网站应用和公众帐号,可通过获取用户基本信息中的unionid来区分用户的唯一性,因为同一用户,对同一个微信开放平台下的不同应用(移动应用、网站应用和公众帐号),unionid是相同的。

        相同的微信用户授权给公众号,网站应用和移动应用所获取的openid是不一样的,一个用户的不同应用的关联就是通过unionid,只要是一个用户,不管他是授权给什么应用,那么他们的unionid是一样的,但是正如上面所说,在此基础必须要有个前提,那就是授权给不同应用的这些应用必须要在第三方平台下的应用,只有在第三方平台下的应用才能如上所说拥有相同的unionid。

第三步:拉取用户信息(需scope为 snsapi_userinfo)

 如果网页授权作用域为snsapi_userinfo,则此时开发者可以通过access_token和openid拉取用户信息了。

OAuth的机制原理讲解及开发流程

OAuth的机制原理讲解及开发流程

到此整个授权认证的流程结束,最终获取用户的信息,不需要用户的密码和账户也可以获得信息。

若有问题请咨询QQ:1147726728

 

 

 



相关文章:

  • 2022-12-23
  • 2021-09-03
  • 2022-02-13
  • 2022-01-14
  • 2021-07-01
  • 2021-11-23
  • 2021-07-15
猜你喜欢
  • 2021-06-08
  • 2021-05-25
  • 2021-04-13
相关资源
相似解决方案