微信开发中的微信网页授权场景说明
定制开发 就找热猫!200城市 上门服务!全国咨询电话:400-882-7532 微信:sunnyli2005
如果用户在微信中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑。
注意:在使用微信授权功能之前,需要在微信公众号平台进行相关的设置,设置好了才能调用微信网页授权接口。
关于网页授权回调域名的说明
1、在微信公众号请求用户网页授权之前,开发者需要先到公众平台官网中的“开发 - 接口权限 - 网页服务 - 网页帐号 - 网页授权获取用户基本信息”的配置选项中,修改授权回调域名。请注意,这里填写的是域名(是一个字符串),而不是URL,因此请勿加 http:// 等协议头;
2、授权回调域名配置规范为全域名,比如需要网页授权的域名为:www.qq.com,配置以后此域名下面的页面http://www.qq.com/music.html 、 http://www.qq.com/login.html 都可以进行OAuth2.0鉴权。但http://pay.qq.com 、 http://music.qq.com 、 http://qq.com无法进行OAuth2.0鉴权
3、如果公众号登录授权给了第三方开发者来进行管理,则不必做任何设置,由第三方代替公众号实现网页授权即可。
微信网页授权分为两类:
1、用户授权
2、静默授权
注意:无论哪一种授权都获取不到用户的微信号。
当用户在微信中访问的是用户授权的网页,则会弹出授权页面,用户必须点击同意之后,才能通过openid获取到昵称、性别、所在地、头像等信息。并且,即使在未关注公众号的情况下,只要用户授权,也能获取其信息。
静默授权是嵌套在普通网页中的授权方式,不需要用户确认。就是说你在微信里访问网页,网页会进行静默授权,界面上不会通知到用户。
静默授权只能获取微信用户的唯一标识openid。获取到之后,可以将这个openid存入到数据库中,这样这个用户下次再来访问的时候,你能通过这个相同的openid来知道这是一个老用户,但是你不知道这个用户是谁,也不会知道他的头像,昵称等信息。静默授权如果想获取用户的头像和昵称,只能在要求用户填写相关信息,从而和openid关联起来。
对于已关注公众号的用户,如果用户从公众号的会话或者自定义菜单进入本公众号的网页授权页,即使是scope为snsapi_userinfo,也是静默授权,用户无感知。就是说就算网页是用户授权,但表现出来的也是静默授权,界面上不需要用户进行确定操作。
用户授权需要用户进行确认,如下图所示。
静默授权不需要用户确认,没有界面会打扰到用户。
如果用户不是在微信里打开需要授权的网页,一种方式会提示必须在微信里打开,另外一种是不提示,直接打开该网页。具体用哪一种,根据实际的业务需求和场景来决定。
如果用户不在微信里打开,并且在网页上注册了,下次这个用户又在微信里打开了,注册信息是不能自动同步的。因为如果用户不在微信里打开是获取不到openid的。