vue.js / nuxt.js 微信公众号判断是否在微信浏览器中打开并授权

摘要:
首先,看到这个要求,我们应该知道这个代码应该放在路线守卫中。每次路由更改时,都应该触发此验证,然后……不用多说,让我们看看代码//之后需要讨论每个。我想以前每个人都应该更好。当我们第一次进入项目时,beforeEach有什么问题吗?

首先, 看到这个需求, 应该知道这段代码要放在路由守卫中, 每次路由的变化都要触发这个校验

然后...话不多说, 看代码吧

// afterEach有待商榷, 我觉得beforeEach应该会更好, 是不是刚进项目时, beforeEach有点问题? 我试试后再追加.
app.router.afterEach(async (to,from)=>{
    // 非微信浏览器跳转到此页 - notwechatbrowse
    // 校验微信浏览器
    // &&后面条件不能少, 否则会出现死循环
    if(!/MicroMessenger/i.test(navigator.userAgent) && to.name.indexOf('notwechatbrowse')==-1){
      window.location.href = '/notwechatbrowse';
      return;
    }else if(to.name.indexOf('notwechatbrowse')!=-1){
      return;
    }

    // 所有页面都请求授权
    let localToken = getCookie("token")
    let code = to.query.code
    let state = to.query.state
    if(localToken){
      // 如果本地已经缓存token, 直接请求用户信息
      let res = await token()
      store.state.userInfo = JSON.parse(res.data)
    }else{
      // 如果没有token但有code, 根据code来获取token
      if(code){
        let res = await accessToken({
          code: code,
          state: state
        })
        if(res.data.openid){
          let userInfo = JSON.parse(res.data.user)
          store.state.userInfo = userInfo
          addStatistics({code:'gzh_auth'})
          setCookie('token', res.data.openid, 30)
        }
      }else{
        // 什么都没有 要用户重新授权 获取用户信息 (走一遍注册流程)
        wechat_authorize_userinfo(window.location.href)
      }
    }


  })

免责声明:文章转载自《vue.js / nuxt.js 微信公众号判断是否在微信浏览器中打开并授权》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇如何统一删除word中的超链接nginx+keepalived实现负载均衡nginx的高可用下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

微信扫码支付碰到的问题及解决

扫码支付时无法生成二维码,提示“请求超时” 该实际是请尔https://api.mch.weixin.qq.com/pay/unifiedorder超时了,解决办法是: 在本机添加腾讯DNS为首选DNS: “腾讯的公众DNS地址为119.29.29.29,从DNS使用的是182.254.116.116”,填119.29.29.29应该就可以了。 商户号该产...

Android DeepLink 深度链接技术实现

一、DeepLink 技术介绍 DeepLink,即为深度链接技术,主要应用场景是通过Web页面直接调用Android原生app,并且把需要的参数通过Uri的形式,直接传递给app,节省用户的注册成本。 DeepLink 通常运用于App社交分享、App广告引流、App裂变活动、Web to App、分享效果统计、沉默用户唤醒等场景,对广告引流、活动推广、...

微信开发-ACCESS TOKEN 过期失效解决方案

微信开发-ACCESS TOKEN 过期失效解决方案 起因:因为access_token的重要性,开发过微信的都知道,但是他有自己的生命周期,官方解释为:"有效期为7200秒",一天调用2000次。流量一高,就over了,没办法,龙哥不帮我们解决问题,我们就要自己解决,不能等死。 解决思路很简单:建立公共access token数据,有效期内不重新创建ac...

微信关注后自动回复,根据关键字回复

packageme.chunyu.apps.weixin.controller; importjava.io.IOException; importjava.net.URLEncoder; importjava.text.SimpleDateFormat; importjava.util.ArrayList; importjava.util.Ha...

使用Sencha Touch开发移动Web应用平台

Sencha Touch是由 Sencha 公司开发的移动Web 应用开发框架,用以提升主流移动设备在浏览器上的触碰操作,增强用户体验。该框架以久负盛名的 Ext JS 富客户端框架为基础,并支持最新的 HTML5 及 CSS3 标准,与流行的 Apple iOS 和 Andriod 设备兼容。一方面,它以 Webkit 浏览器引擎为基础,提供了出色的性能...

Weixin 之 微信二维码扫描下载 Apk

制作的手机 app 需要上线,生成二维码扫描进行下载,把生成好的apk挂在服务器端,将地址复制下来,通过草料二维码(http://cli.im/)生成一个二维码。 在更多中,你会看到有个app的选项,为什么不选择app呢。点开之后你会发现:它需要一个应用宝ID。上传到应用宝,光审批就要好几天,特别烦。并且上传到应用宝,自己管理起来感觉很麻烦。 通过网址的...