前段时间开发微信公众号网页授权,虽然网上已经有很多关于这方面的博客或者教程,但是第一次开发还是遇到挺多坑的,以下分享一下我的踩坑填坑之路。

一、测试号相关配置

首先在你公司申请的测试号上配置好相关信息,这里直接上图吧:

URL与Token都是要后台配置好的,直接叫后台给过来就好啦,域名一定要和URL的域名保持一致。

然后,在体验接口权限表里面找到网页帐号--网页授权获取用户基本信息,点击修改:

配置授权回调的域名,至于什么是OAuth2.0,大家自行百度吧。这里的域名也要与上面的域名一致。配置成功会有通过安全监测的提示,这里不上截图了。

二、获取code

配置好以上回调域名等后,就可以写代码了。首先是获取code,需要打开如下页面:

https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect 若提示“该链接无法访问”,请检查参数是否填写错误,是否拥有scope参数对应的授权作用域权限。

其中,这些参数说明在微信JSSDK说明文档里面都有说明,如下图:

配置好参数后,进入这个页面微信会返回code在回调的url里给我们:

然后,我们只需去url里截取这个code即可,但是我们发现这个code并不是跟在url的最后面,所以一开始我用vue的this.$route.query.code方法行不通,得用js进行截取,以下是我的代码:

methods: {
getCode () { // 非静默授权,第一次有弹框this.code = ''var local = window.location.href // 获取页面urlvar appid = 'wx65adcf075369****' this.code = this.getUrlCode().code // 截取codeif (this.code == null || this.code === '') { // 如果没有code,则去请求window.location.href = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${appid}&redirect_uri=${encodeURIComponent(local)}&response_type=code&scope=snsapi_userinfo&state=123#wechat_redirect`} else {// 你自己的业务逻辑}},
getUrlCode() { // 截取url中的code方法var url = location.searchthis.winUrl = urlvar theRequest = new Object()if (url.indexOf("?") != -1) {var str = url.substr(1)var strs = str.split("&")for(var i = 0; i < strs.length; i ++) {theRequest[strs[i].split("=")[0]]=(strs[i].split("=")[1])}}return theRequest}
}

我的代码逻辑是先判断有没有code,没有才去获取,encodeURIComponent(),是对回调url进行编码,这个微信JSSDK说明文档里面都有说明。拿到code以后,传给后台,让后台去获取用户信息再传给前端。我们拿到用户信息后,比如openId,头像等,可以用localStorage缓存起来,这样就不用每次都去请求code,每次都去后台拿信息了。所以,我们可以在mounted钩子函数里面这样处理:

mounted() {if(!window.localStorage.getItem('openId')){ // 如果缓存localStorage中没有微信openId,则需用code去后台获取this.getCode()} else {// 别的业务逻辑}}
 

微信公众号网页授权--前端获取code及用户信息(vue)相关推荐

  1. 微信公众号网页授权--前端获取code及用户信息(vue)【简单详细版】

    嗨喽大家好,前段时间开发微信公众号网页授权,虽然网上已经有很多关于这方面的博客或者教程,但是第一次开发还是遇到挺多坑的,以下分享一下我的遇到的一些问题的见解,希望对你们有帮助. 一.测试号相关配置 首 ...

  2. 微信公众号网页授权,获取用户信息以及openid -- PHP后台

    微信公众号网页授权,获取用户信息以及openid 这几天做项目,想通过公众号的appid获取用户的openid就,然后在网上查资料,问朋友,最后找到了方法,就是这个网页授权. 起初一直很蒙,这个怎么弄 ...

  3. php微信授权没有code返回,解决关于微信公众号网页授权获取code参数的问题

    解决关于微信公众号网页授权获取code参数的问题 发布时间:2018-07-24 23:21, 浏览次数:3327 , 标签: code * 在微信网页授权过程中,需要获取code参数,因为我用的是公 ...

  4. 微信公众号网页授权登录的超简单实现步骤

    微信开放平台为第三方移动程序提供分享.传播的接口, 使用户可将第三方程序的内容发布给好友或分享至朋友圈, 下面这篇文章主要给大家介绍了关于微信公众号网页授权登录的超简单实现方法, 需要的朋友可以参考下 ...

  5. 微信公众号网页授权思路解析及具体代码

    微信公众号网页授权思路解析及具体代码 微信开发文档 实现方式也是两种: 1.静默授权登录 授权登录以snsapi_base为scope发起的网页授权,是用来获取进入页面的用户的openid的,并且是静 ...

  6. 微信公众号网页授权40163问题【php】

    微信公众号网页授权40163问题 tp5为例,emmmm-一直报40163或40029问题,翻遍了各大网站都没找到合适我的办法. 如图: 解决之后如图: 因为重定向所以请求了两次code,所以一直报4 ...

  7. 微信公众号网页授权代码优化过程(一)

    2019独角兽企业重金招聘Python工程师标准>>> 第一次更新 写本系列博客的主要原因是,我在处理一个微信公众号项目时要做一个网页授权的操作(官方地址是https://mp.we ...

  8. 微信公众号网页授权时序图

    微信公众号网页授权时序图 公众号网页授权时序图

  9. 在做微信公众号网页授权的时候,有时会重定向两次网页(302问题)

    在做微信公众平台网页授权时,发现每次请求授权链接 https://open.weixin.qq.com/connect/oauth2/authorize?appid=xxx&redirect_ ...

最新文章

  1. 拒绝躺平,Redis选择实现了自己的VM
  2. Shell tips
  3. argparse subparsers()
  4. docker 1.8.2 源代码编译
  5. 使用XIB实现嵌套自定义XIB视图
  6. jwt:token的解析
  7. (转)字典树原理+实现
  8. Android Drawable绘图学习笔记
  9. 13. 查看网络端口、配置网络
  10. Oracle 初始化参数文件pfile和spfile
  11. 图书馆的uml概念类图怎么画_UML科普文,一篇文章掌握14种UML图
  12. 定时器和promise_如何讲清楚Promise?
  13. linux 使用 ioctl 参数
  14. 北京市参加汽车摇号条件
  15. RDS数据库申请外网地址
  16. Docker学习笔记八:删除镜像构建私有Registry
  17. 绝对水题(一些没有被穷举遗忘的角落)
  18. 泰克示波器MDO3054固件升级的一种方法
  19. 信号频率、采样频率、采样点数
  20. python批量下载文件教程_超简单超详细python小文件、大文件、批量下载教程

热门文章

  1. 创业公司 JPEGmini 可以将照片缩小5倍,但保证图片质量和分辨率
  2. 关于使用https请求微信乱码问题
  3. 进销存仓库管理系统:规范数据、流程与管理
  4. 代码库_单精度浮点减法器
  5. 迅捷音频转换器如何转换音频教程
  6. 怎么在html画出爱心,使用CSS绘制桃心
  7. TA100 T3.4
  8. 【算法特训总结】计算机经典算法的核心思想及独特角度的解读
  9. python 检测直线 交点_在python中,找到直线和圆的交点的最有效方法是什么?
  10. OceanBase发布“珊瑚计划”,让合作伙伴成为OceanBase成功的关键