web,h5集成企微消息通知

web端router.js或者uniapp中app.vue中拦截调用处理

此处截了部分web端router.js的代码

router.beforeEach(async (to, from, next) => {

  const hasToken = getToken()

  const from_qw = store.getters.from_qw

  if (from_qw && !hasToken) {

    await qwGetToken()

    if (getUrlParam('code')) {

      next()

    } else {

      return false;

    }

  }

}

封装的js代码

export default function getCode() {
    var code = getUrlParam('code') // 截取路径中的code,如果没有就去微信授权,如果已经获取到了就直接传code给后台获取openId
    var targetUrl = window.location.href; //这个地方是微信公众平台网页授权里面配置的域名,
    const redirect_url = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=wwfd45d382384eb513&redirect_uri=' +
        encodeURIComponent(targetUrl) +
        '&response_type=code&scope=snsapi_base&state=#wechat_redirect'
    if (code == null || code === '') {
        window.location.replace(redirect_url)
    } else {
        getOpenId(code) //把code传给后台获取用户信息
    }
}
export function getUrlParam(name) {
    let reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)')
    let r = window.location.search.substr(1).match(reg)
    if (r != null) {
        return unescape(r[2])
    }
    return null
}

// 根据企微code获取企业token
export function getOpenId(code) {
    uni.request({
        url: '/api/oauth/Login/socials',
        method: 'get',
        data: {
            code: code,
            source: 'wechat_enterprise_h5',
            grant_type: 'socials'
        },
        success: (res) => {
            uni.setStorageSync('token', res.data.data.token);
            uni.setStorageSync('Authorization', res.data.data.token);
            store.dispatch("user/getCurrentUser")
        }
    });
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值