科技小辛辛|2.0,上班摸鱼写文章,就是为了让你理解OAuth( 二 )
文章图片
例如在这个例子中我们的地址可能长这个样子:
www.xxx.com/oauth2.0/authorize?appid=123456&redirect=www.sss.com/login参数:
appid我们的应用对于第三方平台的唯一idredirect用户同意授权后被重定向的地址,一般来说都是本应用的首页或者登录页面,在本例中就是www.sss.com/login这个地址.其他参数根据第三方平会有不同的额外参数.然后将用户重定向到这个url中,此时用户会跳转到www.xxx.com(因为如果用户授权成功 , 你总要回调服务商接口 , 来告诉它 , 已经授权成功).
3、用户授权成功
用户授权成功后 , 微信就会请求上面redirect参数中的接口地址 , 带上授权成功的参数code
文章图片
在这个例子中这个url看起来是这个样子的
www.sss.com/login?code=xxxxx4、获取用户token(令牌)
此时我们的www.sss.com/login接受到了一个含有code的请求,我们知道这个是一个第三方登录授权后的请求.
我们再次拼接一个url(不同平台地址规则不同),但是一般来说这个请求会有如下的参数:
code用户授权后重定向带回来的codeappid应用唯一idappsecret应用对应的密钥在这个例子中我们请求服务器的url可能是这个样子的:
www.xxx.com/oauth2/access_token?appid=xxxx&secert=xxxx&code=xxxx
文章图片
如果一切顺利在这个阶段我们就可以获取第三方平台响应的一个accesstoken,这个accesstoken代表着用户对于这个应用的授权.
除此以外你还会获取到用户的基本信息例如用户的唯一id之类的 , 后续的请求用户的信息需要使用accesstoken进行请求 。
5、获取用户基本信息
利用accesstoken我们向服务器获取了用户的名字,显示在了我们的应用中,后续的资源获取就是这个模式(不同平台资源获取地址以及方式有可能稍有不同).
文章图片
6、补充
1、微信认证成功后 , 我会会把accesstoken存放在cookie中 , 这样不用每次都需要用户去授权认证 , 而是我们后台去请问微信 , 这个时候用户是不会感知的 。
2、accesstoken不是一直有效的 , 它会有过期时间的 , 就好比微信扫码登陆中accesstoken有效时间是2小时 。
3、那么accesstoken时效 , 是不是就要用户重新授权登陆了 , 当然也不是 , 如果没2小时都要重新授权登陆那体验也太差了 。 这里会有个叫refresh_token ,
它是在你第一次获取accesstoken一起给你的,也就是说如果你的accesstoken时效了 , 你还可以通过refresh_token去获取用户信息 。 这么说refresh_token的
时效时间肯定要比accesstoken , 微信扫码登陆refresh_token有效时间是30天
4、也就是当refresh_token也时效的时候 , 才会需要用户重新授权登陆 。
具体的可以看看微信扫码登陆的官方文档:网站应用微信登录开发指南
作者:雨点的名字
【科技小辛辛|2.0,上班摸鱼写文章,就是为了让你理解OAuth】来源:https://www.cnblogs.com/qdhxhz/p/13337538.html
- 小红猪带你看科技|七夕节送女朋友必备左点小艾智能艾灸器X8,3天众筹500万
- 浪浪科技精选|超频三GI-CX240 ARGB水冷,极致性能冷酷到底
- ITheat热点科技|可搭载高规格显卡,AMD将发布新移动端处理器:开放完整PCIe通道
- 爱因儿科技|入侵盖茨、马斯克、巴菲特等名人推特账号的黑客被抓了!最小的17岁
- 小米科技|小米正式官宣以旧换新,支持小米10系列等5款机型,你等到了吗?
- 小米科技|数亿米粉始料未及!小米2日正式宣布,网友:太良心了!
- 科技数码迷|刘作虎终于拿起了屠刀,一加氢OS彻底与过去说再见
- 一点科技范|你更pick谁?,下半年最受期待的三大系列手机
- 科技章鱼烧|更换硬盘只需动动小手,装载系统和软件交给DiscWizard
- 科技小蠕虫|又一国家绕开华为,3大运营商核心网络不用华为,美国“围剿”下