网页授权用户基本信息

认识Auth协议

官方网站:
http://oauth.net/ 、 http://oauth.net/2/
权威定义
在这里插入图片描述
OAuth是一个开放协议,允许用户让第三方应用安全且标准的方式获取该用户在某一网站,移动或桌面应用上存储的私密的资源,(如用户个人信息,照片,视频,联系人列表),而无需将用户名和密码提供给第三方
_OAuth允许用户提供 一个令牌,而不是用户名和密码来访问他们存放在特定服务提供者的数据
_每一个令牌授权一个特定的网站,
_OAUTH允许用户授权第三方网站访问他们存储在另外的服务提供者上的信息,而不需要分享他们的访问许可或他们数据的所有内容,
_Oauth2.0是OAuth协议的下一个版本,但不向后兼容OAuth1.0
_OAuth2.0关注客户端开发者的简易性,同时为web应用,桌面应用和手机,和起居室设备提供专门的认证流程,

微信网页授权方式

_以snsapi_base为scope发起的网页授权,是用来获取进入页面的用户的openid的,是静默授权并自动跳转到回调页的,用户感知的就是直接进入了回调页(往往是业务页面)
_以snsapi_userinfo为scope发起的网页授权,是用来获取用户,所以无须关注,就可在授权后获取该用户的基本信息,
_用户管理类接口中的"获取用户信息接口",是在用户和公众号产生消息交付或关注事件推送后,才能根据用户openid来获取用户基本消息
_"获取用户基本消息接口"及其他微信和接口,都是需要该用户(即openid)关注了公众号,才能调用成功,

Access_Token

网页授权是通过OAuth2.0机制实现的, 在用户授权给公众号后,公众后可以获取到一个网页授权特有的接口调用凭证-----网页授权Access_token;
)
( 通过Access_token就可以向资源服务器发起请求,来获取用户基本信息

UnionID机制

V< unionid是用来区分用户的唯一性,原因是统一用户对用一个微信开放平台下的不同应用的unioniud是相同的

特殊场景下的静默授权

v静默授权以snsapi_base为scope的网页授权,就静默授权的,用户无感知,
V特殊场景下静默授权,已关注公众号的用户,如果用从公众号的会话或者自定义菜单进入本公众号的网页授权,即使是scope为snsapi_userinfo,也是静默授权的,用户无感知

OAUTH2.0授权详细步骤,
_用户关注微信公众号
_微信公众号提供用户请求授权页面URL(带回调地址)
_用户点击授权页面url,将向服务器(微信认证服务器)发起请求,
_服务器询问用户是否同意授权给微信公众号(scope为snsapi为snsap_base时无此步骤)
_用户同意(scope为snsapi_base时无此步骤)
_服务器将scope通过回调给微信公众账号
_微信公众账号获得CODE
_微信公众账号通过code向服务器请求Access_token
_服务器返回ACCESS_TOKEN 和OenID给微信公众账号,
_微信公众账号通过ACCESS_TOKEN向服务器请求用户信息(scope为snsapi_base时无此步骤)
_服务器将用户信息会送给微信公众账号,(scopr为snsapi时无此步骤)

在这里插入图片描述

OAuth2.0网页授权获取用户信息

完整案例实现,

  1. 新建文件oauth2_openid,php
  2. 通过code换取网页授权access_token(code通过调用相关接口获得)
  3. 在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
svn提交代码到SAE

用户获得授权引导页面
在这里插入图片描述

在这里插入图片描述

实验
一、实验目的
 理解网页授权机制
 掌握OAuth2.0概要和授权步骤
 掌握网页授权流程
 掌握网页授权获取用户信息案例实现
 掌握SVN管理新浪SAE云端代码的方式;

• 1、请问网页授权协议的原理是什么,请画图表示?
在这里插入图片描述

• 2、请问微信公众平台网页授权获取用户信息的流程是什么?涉及哪些接口调用?
第三方应用客户端向微信用户请求授权,获取授权后通过code向微信授权服务器获取access_token,通过access_token微信资源服务器拉取用户信息
涉及的接口

  1. 获取code的接口
    https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect
  2. 获取access_token接口
    https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
  3. 获取用户信息的接口
    https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN

• 3、请问微信公众平台网页授权获取用户信息流程中code和AccessToken的分别是什么,及其作用是什么?
Code就是用户授权凭证,作用获取AccessToken
AccessToken就是用户令牌,作用获取资源

网页授权access_token的获取,只要用户许可,就可以获得,不论用户是否关注
全局性的access_token和网页授权access_token混淆的❀就会出现”invalid access_token”的错误
如果是多线程去调用网页access_token的接口就会出现原有的access_token失效,解决方法是让一个线程独立地去请求access_token,然后将access_token保存以供其他线程共享 使用

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值