首先需要说明的是,普通的微信订阅号是不支持oauth2.0网页授权的。网上很多文章说通过微信开放平台的网站应用漏洞可以实现,但交了钱拿到认证后测试,发现并没什么卵用,跟很多网友反馈的一样,提示scope 权限不足。花钱的东西,谨慎尝试啊!

当然最后还是找到了解决方法,虽然不是很完美,但至少我的领导看后还是很欣然接受的。

解决方案:

方法1:

通过用户点击菜单,触发微信异步通知,然后获取用户信息,然后再把专属URL发给用户(也就是加上token的URL)

虽然订阅号没有oauth2.0网页授权,但是 ”获取用户基本信息“这个接口是有权限的。使用这个接口得用到openId,那怎么拿openId呢。其实用户在操作公众号时,公众号都相应的与绑定的服务器地址进行异步操作,比如点击菜单。此时我们就可以在异步方法里获取openId,同时也拿到了用户信息。虽然拿到了用户信息,但是新的问题就来了,既然是公众号与我们服务器进行异步操作,我们怎么知道服务器获取用户信息是对应哪个当前操作的用户,又如何引导他进入授权登陆后的页面。我目前想到的方法是,通过公众号消息响应 的机制,把用户授权登陆后的URL(也就是带上token)返回给用户,用户点击后进入,间接实现授权登陆。效果如图所示:

异步代码:

方法2(推荐)

使用另一个服务号的oauth2.0网页授权接口实现订阅号授权登陆

这里可能就有小伙伴郁闷了,oauth2.0授权登陆不是得先关注公众号,那不是得让客户先关注服务号。其实不然,服务号的oauth2.0授权有两种方式。

第一种是静默授权,以snsapi_base为scope发起的网页授权,这种是最常见的方式,用户无需点击授权,但前提是得先关注公众号。

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

很显然,第二种符合我们的要求,毕竟所谓的授权登陆,无非就是获取用户信息,并引导其进入相应页面。开发步骤和代码跟服务号oauth2.0授权登陆一样的,只是请求的URL有所区别,具体的开放文档地址:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842

效果如图:

对比:

方法1:

优点:仅需要自身接口即可实现,不需要另一个微信服务号支持。

缺点:体验差,用户每次”授权“,都需要进行两部操作,先获取专用url(其实就是token),然后再点击url进入授权页面。

方法2:

优点:体验好,用户首次授权后,一段时间内再授权无需用户手动同意,体验跟静默授权一样。

缺点:成本较高,需要另一个服务号支持。

总结:很明显如果手头有服务号或者不介意在申请一个的,推荐使用方法2。当然如果对应体验不怎么敏感的,可以使用成本更低的方法1.

注释:本项目开发语音:PHP,微信开发插件:easywechat

php微信公众号绑定微信号,订阅号实现微信网页授权登陆(原创)相关推荐

  1. 微信公众号内测开放个人订阅号认证!

    微信小范围开放个人公众号认证功能,部分个人公众号可以申请免费认证开通. 近期,有部分公众号主收到微信开始内测免费开放个人订阅号认证功能邀请通知,意味着后续个人公众号也将可以进行免费公众号认证. 个人公 ...

  2. 升讯威微信营销系统开发实践:订阅号和服务号深入分析( 完整开源于 Github)...

    GitHub:https://github.com/iccb1013/Sheng.WeixinConstruction因为个人精力时间有限,不会再对现有代码进行更新维护,不过微信接口比较稳定,经测试至 ...

  3. 微信群、朋友圈和订阅号的流量到底有什么差异?

    Canon @ CES 2019 微信群.朋友圈和订阅号的流量到底有什么差异?小林的微信好友正好刚满5000人,不可能给每个好友群发内容,那样骚扰人有随时被拉黑的风险.一般写了自认为还不错的文章就有分 ...

  4. android改微信号码,微信已支持改微信号:仅限安卓最新版,附修改办法

    很多网友抱怨的微信不能修改微信号的功能,终于在今天得以圆满解决.据腾讯微信团队消息,安卓最新版微信已支持改微信号,而IOS版本的还需要再等等.不过随着越来越多的人开始用手机登录微信,其实这个功能的修改 ...

  5. 微信端中的企业号、订阅号、服务号之前的区别

    微信端中的企业号.订阅号.服务号之前的区别 一直在开发微信端的企业号和订阅号,却还不太清楚两者之间的区别到底在哪,以下是找的文档区别. 企业号: 面向人群:面向企业,政府.事业单位和非政府组织,实现生 ...

  6. 第一篇:微信公众平台开发实战Java版之了解微信公众平台基础知识以及资料准备...

    相信很多人或多或少听说了微信公众平台的火热.但是开发还是有一点门槛,鉴于挺多朋友问我怎么开发,问多了,自己平时也进行以下总结. 所以下面给大家分享一下我的经验: 第一部分   介绍微信公众号的一些简单 ...

  7. 微信公众平台账号资料丢失,如何找回账号密码等登陆信息?

    部分用户反映因员工离职,或忘记公众号登陆邮箱及密码.忘记管理员及公众号ID等,导致无法登陆公众号. 微信公众号无法登陆怎么办?可联系公众平台服务商--微巨科技 快速找回. 公众号找回适用范围: 1.个 ...

  8. 转载收藏之用 - 微信公众平台开发教程(三):微信公众平台开发验证

    要对接微信公众平台的"开发模式",即对接到自己的网站程序,必须在注册成功之后(见Senparc.Weixin.MP SDK 微信公众平台开发教程(一):微信公众平台注册),等待官方 ...

  9. ICCMO微信公众账号开发系列(2)打造微信聊天机器人

    昨天我们已经成功的接入了微信公众账号.今天咱们来做一个微信聊天机器人.这个就需要一点点PHP的知识了.如果你不懂PHP呢,没关系,跟着一步一步做也 可以做出来. 这是在昨天的基础上做的,如果你还不会接 ...

  10. 微信OAuth2网页授权登陆接口

    微信OAuth2网页授权登陆接口,微信OAuth2网页授权登陆接口,在你的网站上放上可以扫码登陆,会不会吸引更多用户去注册,现在你只需要简单的配制一下就可以轻松实现,还不快点拿走,微信扫码登陆接口开发 ...

最新文章

  1. 一步一步学习VirtualBox安装CentOS7和CentOS8
  2. 计算机网络最基础知识
  3. 会计与python结合-财务与会计前沿讲座——“大数据集训”开讲
  4. oepnstack笔记
  5. P2P in Flash Player 10
  6. 微信/QQ 中已停止访问该网页的处理办法
  7. Orchard:使用VS2010来生成一个地图Content Part
  8. RxJava学习-使用篇
  9. matlab怎么提取特征,matlab – 了解提取特征的编码
  10. 中科大开源镜像使用帮助列表
  11. android 学习随笔十六(广播 )
  12. ASP.NET MVC5 之 分部页
  13. 4月5日--课堂笔记--JS内置对象
  14. C# CookieHelper帮助类
  15. 从3dmax导出动画总结
  16. 论文管理:zotero的安装和插件使用
  17. [C++]学生学籍管理系统
  18. 【数字信号调制】基于ASK+OOK+BPSK+8PSK+QPSK+AM多种算法实现信号调制解调含Matlab源码
  19. 1308:【例1.5】高精除
  20. 推荐14个可以展示你代码的网站

热门文章

  1. 虚拟机安装CentOS系统教程(详细)
  2. 如何将域名转换为ip
  3. 盘点13个值得程序员逛的论坛
  4. win10熄屏时间不对_win10设置了息屏时间但是很快就息屏
  5. 玩游戏显示服务器不稳定,FPS不稳定是什么原因?玩游戏FPS低怎么办?
  6. mysql和虚拟主机区别_虚拟主机mysql
  7. python 官网下载+安装(Mac)
  8. 图片快速转化为Excel表格
  9. 内存笔记之DIMM与DDR
  10. 阿里云吴磊创办yunQ云桥,完成银杏谷资本2000万元天使轮融资...