官网链接: https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html

如果用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑

关于网页授权回调域名的说明

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、如果公众号登录授权给了第三方开发者来进行管理,则不必做任何设置,由第三方代替公众号实现网页授权即可

关于网页授权的两种scope的区别说明

1、以snsapi_base为scope发起的网页授权,是用来获取进入页面的用户的openid的,并且是静默授权并自动跳转到回调页的。用户感知的就是直接进入了回调页(往往是业务页面)

2、以snsapi_userinfo为scope发起的网页授权,是用来获取用户的基本信息的。但这种授权需要用户手动同意,并且由于用户同意过,所以无须关注,就可在授权后获取该用户的基本信息。

3、用户管理类接口中的“获取用户基本信息接口”,是在用户和公众号产生消息交互或关注后事件推送后,才能根据用户OpenID来获取用户基本信息。这个接口,包括其他微信接口,都是需要该用户(即openid)关注了公众号后,才能调用成功的。

关于特殊场景下的静默授权

1、上面已经提到,对于以snsapi_base为scope的网页授权,就静默授权的,用户无感知;

2、对于已关注公众号的用户,如果用户从公众号的会话或者自定义菜单进入本公众号的网页授权页,即使是scope为snsapi_userinfo,也是静默授权,用户无感知。


当我使用scope为snsapi_userinfo时,即使我没有关注公众号,但是我直接点击自定义菜单栏的直播频道,也顺利进入了三方网页,并且是在静默授权的情况下,并没有手动点击授权
没有关注公众号是无法在pc端的微信上搜索到此公众号的,所以无法进入,手机关注公众号,PC端微信搜索,查找到公众号,点击进入,出现下图:

出现了授权页面,也就是说在手机微信端即使不关注公众号,通过点击自定义的菜单,就可以获取到用户的信息了,而在pc端,则必须关注公众号,还得手动授权才可以,当然上面的情况都是在使用scope为snsapi_userinfo时。
使用以snsapi_base为scope发起的网页授权,则全部是静默授权,但是只能获取到openid

具体而言,网页授权流程分为四步

1、引导用户进入授权页面同意授权,获取code

2、通过code换取网页授权access_token(与基础支持中的access_token不同)

3、如果需要,开发者可以刷新网页授权access_token,避免过期

4、通过网页授权access_token和openid获取用户基本信息(支持UnionID机制)

微信公众号开发详细过程(亲手总结)相关推荐

  1. 微信公众号开发详细教程

    微信公众号开发之配置开发服务器 微信公众号开发之获取access_token 微信公众号开发之关键词回复 微信公众号开发之模板消息 微信公众号开发之授权回调

  2. 基于新浪云的微信公众号开发配置过程

        使用新浪云(SAE)作为微信公众号服务器首先需要有一个新浪微博账号,没有的话,     请先注册一个,然后开始下面的步骤: 1 点击下面的地址,使用新浪微博账号登录,申请新浪云服务器资源.   ...

  3. 微信公众号开发之关键词回复

    微信公众号开发详细教程 公众号的关键词回复是一个最基本的功能,大部分的关键词回复可以在授权的第三方平台(微微校.腾讯微校等)去进行管理,配置开发服务器之后,微信平台的自动回复和自定义菜单会失效,而在开 ...

  4. 微信公众号开发获取openID以及用户详细信息,超详细步骤,亲测开发

    好久没有发过博文了,恰好这两天做了一个关于微信公众号开发的东东,拿出来和大家分享一下. 需要做一套微信签到.抽奖系统,我要在后台存储微信用户的相关信息,openIDNickname之类的信息.在开发前 ...

  5. 微信公众号开发小记(二)--服务器验证

    这篇是微信公众号开发小记的第二篇,承接上一篇,此次将完成如下主要功能 对接微信服务器和自己的服务器 需要的"材料" 到这里需要梳理一下都需要什么东西,以便在整个编码的过程中方便我们 ...

  6. 微信公众号开发入门教程第一篇

    微信公众号开发入门教程第一篇 关键字:微信公众平台开发 作者:方倍工作室 在这篇微信公众平台开发教程中,我们假定你已经有了PHP语言程序.MySQL数据库.计算机网络通讯.及HTTP/XML/CSS/ ...

  7. C#微信公众号开发系列教程三(消息体签名及加解密)

    http://www.cnblogs.com/zskbll/p/4139039.html C#微信公众号开发系列教程一(调试环境部署) C#微信公众号开发系列教程一(调试环境部署续:vs远程调试) C ...

  8. Java微信公众号开发梳理

    Java微信公众号开发梳理 现在微信公众平台的开发已经越来越普遍,这次开发需要用到微信公众平台.因此做一个简单的记录,也算是给那些没踩过坑的童鞋一些启示吧.我将分几块来简单的描述一下,之后会做详细的说 ...

  9. Python微信公众号开发平台

    上大学的时候,对微信公众号开发浅尝辄止的玩了一下,感觉还是挺有意思的. //www.jb51.net/article/133677.htm后来服务器到期了,也就搁置了.由于发布web程序,使用PHP很 ...

  10. vue 微信公众号开发

    vue 微信公众号开发 开题 上个月初入职了一家新公司.来了新公司很忙.本来计划是在上个月底写一篇博客的,写一下关于新公司的事情. 几度思考之后还是没写.也许做程序员接手别人的项目,都会说别人的项目多 ...

最新文章

  1. web前端培训分享:面向对象中类和对象的定义是什么?
  2. python高阶函数闭包装饰器_Python_基础_(装饰器,*args,**kwargs,高阶函数,函数闭包,函数嵌套)...
  3. 计算机未来的储存装置,图说计算机存储设备
  4. linux重定向文件不存在,shell 12 21 filename重定向的含义和区别
  5. ML.NET Cookbook:(17)如何在分类数据上训练模型?
  6. GT决赛第二次讨论会议
  7. c/c++学习系列之memset()函数
  8. python数据处理:数据合并和Reshaping
  9. CAM350 V14.5安装记录
  10. springboot配置文件为yml格式详解
  11. 【H3CTE认证和HCIE认证一样吗?】
  12. dist文件夹、src文件夹、dest文件夹是什么意思?
  13. 洛谷P1348 Couple number
  14. 凯云水利水电工程造价管理系统 技术解释(十三) 中间单价(四)
  15. 压缩png命令cmd_PNG图片文件大小怎么改变
  16. Flex全屏后键盘输入问题
  17. python讲义学习 day02
  18. 爬虫 人人车字体反爬分析(含源码)
  19. MySQL用年、月、日、季度、周分别统计数据
  20. 中国珠算术语与计算机术语,新计算技术珠算与珠心算 王家申等编著.pdf

热门文章

  1. cocos2d-x中setcolor中的rgb颜色值设置
  2. 自反ACL实验(GNS3)
  3. 高德地图自定义定位当前位置按钮
  4. git lfs mac 安装_Git LFS
  5. 如何显示电脑已连接的WiFi的密码
  6. entrez检索系统要服务器吗,Entrez检索系统的简介.doc
  7. APISpace 汉字转拼音API 方便好用
  8. python123随机密码生成器_python实例--随机密码生成器
  9. windows scrip host报错代码:800A00D
  10. 企业网络安全最常遇到的安全问题是什么,主要面临哪些威胁?