bug再现:

前提保证后端签名都正确,我的是正确的,前端时不时会出现授权失败的情况。

IOS微信访问vue history模式的页面,

A页面,需要微信授权,调用jssdk使用扫描二维码接口,打开方式:直接从url进入或者别的页面进入。

B页面,支付页,打开方式:需要从别的页面进入。

直接访问A页面:微信授权正常扫一扫正常使用。从别的页面进入A页面,授权失败,提示【invalid signature】。

B页面一直正常。

问题原因:

ios的微信在vue使用history模式时,当前的“地址栏”的url不是真实的当前页面的URL,而是第一次进入的url,也就是说,

当用户在操作页面的时候,无论进了几个页面,跳转到哪里,当前页面是什么,当前地址栏的url始终是第一次进入的url。

解决办法:

在vue-router的index.js里

router.afterEach(async (to, from) => {if (window.__wxjs_is_wkwebview) { // IOSif (window.entryUrl == '' || window.entryUrl == undefined) {var url = baseLocation  +to.fullPathwindow.entryUrl = urlconsole.log('IOS', window.entryUrl)} else {console.log('IOS2', window.entryUrl)}} else { // 安卓window.entryUrl = baseLocation +to.fullPath}})

意思是定义一个全局变量,这个变量等于第一次进入的地址

在需要授权的页面里:

    async wxInit() {console.log("授权地址", window.entryUrl);//这里单独提出来let data = await http.go(api.getSignature,{ url: window.entryUrl },true);if (data.no == 1) {await wx.config({debug: false,appId: data.obj.appid,timestamp: data.obj.timestamp,nonceStr: data.obj.noncestr,signature: data.obj.signature,jsApiList: ["scanQRCode"]});} else {this.$toast("请刷新页面再试");}},

后端签名的地址使用这个全局变量即可

转载于:https://www.cnblogs.com/6324/p/10478618.html

vue history 微信jssdk授权失败解决办法相关推荐

  1. iOS开发 苹果开发者企业账号续费,提示你的支付授权失败解决办法

    最近续费公司帐号都没有问题,续费企业帐号时提示"你的支付授权失败.请核对你的信息并重试,或尝试其他支付方式",目前已经续费成功,提供一些方法. 网上提供的方法(他们说可行,但是不是 ...

  2. UAP_STUDIO授权失败解决办法

    把本地的studio的安装目录下的\Platform\bin的lic.data文件删掉 然后把授权服务器上的bin\licsec.data文件删掉.. 然后重新授权 搞定

  3. 关于vue路由模式导致微信jssdk授权问题的正确解决姿势

    如何正确解决vue路由模式weixin-jssdk授权问题 第一种情况:最常用的history模式 第二种也比较常用,hash模式 第三种就是memoryHistory 总结 第一种情况:最常用的hi ...

  4. php微信公众号测试号token配置失败,微信公众号Token配置失败解决办法

    前言 今天生病在家,由于我的微信公众号被投诉了,因此影视站接口被迫关闭,于是就想着给大家分享 APP,于是就用了下微信的自动回复, 想着能否把这个自动回复对接到 MIPCMS 上,于是就开干.但是微信 ...

  5. 王者荣耀 微信登录 服务器找不到,王者荣耀微信登录失败怎么办 王者荣耀微信登录失败解决办法...

    王者荣耀微信登录失败怎么办?看到有的玩家在玩游戏时遇到过微信登录失败.登录超时等问题,小编为此作了一篇王者荣耀微信登录失败解决办法,一起来看看吧! 王者荣耀微信登录失败原因: 1.网络不稳定 大部分网 ...

  6. 苹果4S手机IOS6.1.3系统《微信6.2》登录失败解决办法!100%成功!小白也会用!

             苹果4S手机IOS6.1.3系统<微信6.2>登录失败解决办法!100%成功!小白也会用! 首先我要鄙视那些正在IOS6.1.3上使用微信,而又不分享成功方法的人,自己悄 ...

  7. ## 微信web开发者工具网络连接失败解决办法,基本百分百成功

    微信web开发者工具网络连接失败解决办法,基本百分百成功 下载抓包工具然后直接打开微信开发者工具即可解决网络连接失败问题 安装 Charles 然后启动一下就行了.此时再启动微信开发者工具就可以扫描二 ...

  8. 前端基于vue企业微信JS-SDK语音识别功能开发(同公众号)

    前端基于vue企业微信JS-SDK语音识别功能开发(同公众号) 微信JS-SDK 1.前期准备 前端代码撰写 微信JS-SDK 前端需要实现一个功能,如录音,拍照,分享,地理位置等,前端想要实现这些功 ...

  9. idea验证失败_SVN提示https证书验证失败解决办法

    技术分享之 <SVN提示https证书验证失败解决办法>--我要编程技术手册系列 svn提交代码时报错,证书认证失败 Commit failed with error 0 files co ...

最新文章

  1. 17DOM之操作元素
  2. 使用TDI与WinSock进行客户端服务器编程
  3. linux内存管理策略,Glibc内存管理—ptmalloc内存分配策略(1)
  4. winrar命令行的一些参数例子
  5. CF296B dp\容斥
  6. 一起学windows phone7开发(二十一.二 Map控件的简单使用)
  7. tdk怎么设置_你真的做好网站的标题、描述、关键词(TDK)设置了吗?
  8. OSPF邻接关系的建立步骤
  9. 入职新公司,如何快速上手公司业务?
  10. win 7 ×××自动拨号设置
  11. CCF NOI1070 汉诺塔游戏
  12. Speaker Recognition: Feature Extraction
  13. C# 中的字符串内插
  14. 机器阅读理解(MRC)和问答(QA)在信息抽取中的应用
  15. 转自《编程世界》一篇让我震憾的文章
  16. 前端实现在线预览word(docx),pdf,excel类型的文件
  17. 批量删除多个 Excel 空白工作表
  18. 斐讯 http文件服务器,斐讯刷机教程(硬件版本A5)
  19. java飞机订票系统课程设计_基于Java+SSH的飞机票订票售票系统
  20. QQ邮箱代收Gmail邮箱

热门文章

  1. Macbook Pro Bootcamp 安装触控板驱动mac-precision-touchpad在Windows系统下实现更好的触控板操作
  2. InvalidateRect()与Invalidate()的用法(转)
  3. 2022年危险化学品生产单位安全生产管理人员最新解析及危险化学品生产单位安全生产管理人员考试总结
  4. web3.js中英文文档地址
  5. 概率论与数理统计---排列组合
  6. TCP/UDP/Socket 通俗讲解
  7. 7、em/px/rem/vh/vw区别?
  8. 网络安全、信息安全、数据安全、个人信息的含义
  9. REVIT中一次性导出项目里的族及“项目族管理”操作
  10. html支付选择银行卡,JQ电脑手机通用银行选择下拉框 提现银行卡绑定