微信公众号开发以及测试公众号前端自测网页授权

这篇具有很好参考价值的文章主要介绍了微信公众号开发以及测试公众号前端自测网页授权。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

测试号申请(开发的时候需要使用微信测试号进行开发)

微信测试号申请地址
进入网页之后选择微信登陆,直接用微信扫码登录,微信测试号就申请成功了
微信测试公众号,微信,前端,微信公众平台

测试号配置

申请成功之后会有一个测试号管理界面
1、会自动生成appID、appsecret(需要记录一下,后面会用到)。
2、接口配置信息不用管
3、配置JS接口安全域名名(也就是页面的域名) 注意不要加上http或后缀,测试用的是本地地址127.0.0.1
微信测试公众号,微信,前端,微信公众平台
微信测试公众号,微信,前端,微信公众平台
4. 下拉配置网页账号:页面访问地址, 同样注意不要加上http或后缀
微信测试公众号,微信,前端,微信公众平台
微信测试公众号,微信,前端,微信公众平台

测试开发工具(微信开发者工具)

放入项目测试地址
微信测试公众号,微信,前端,微信公众平台
微信测试公众号,微信,前端,微信公众平台
微信测试公众号,微信,前端,微信公众平台

前端逻辑代码

在路由首位中判断是否是从微信进入 如果是地址进行重定向获取用户唯一code
注:微信接口来自于网页授权

router.beforeEach((to, from, next) => {
  if (to.meta.title) {
    document.title = to.meta.title
  }
  // 截取url中的code方法
  function getUrlCode() {
    var url = document.location.search

    var theRequest = {}
    if (url.indexOf('?') !== -1) {
      var str = url.substring(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
  const ua = navigator.userAgent.toLowerCase()
  if (ua.match(/MicroMessenger/i)) {
    const isWeixin = ua.match(/MicroMessenger/i).some(item => item === 'micromessenger')
    if (isWeixin) {
      const appId = 'xxxxx'
      const redirectUrl = encodeURIComponent('http://127.0.0.1:8080/inspector-mobile-yunnan4')
      const url = getUrlCode()
      if (Object.keys(url).length) {
        sessionStorage.setItem('wxCode', url.code)
      } else {
        window.location.href = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${appId}&redirect_uri=${redirectUrl}&response_type=code&scope=snsapi_base&state=123#wechat_redirect&connect_redirect=1`
      }
    }
  }

在登录页初始化判断:如果连接中有微信返回的 code,则用此 code 调用后端接口,向微信服务器请求用户信息文章来源地址https://www.toymoban.com/news/detail-742308.html

  1. 获取access_token
  2. access_token有较短的有效期,刷新access_token
  3. 获取用户信息
import axios from 'axios'
async created() {
    // 如果连接中有微信返回的 code,则用此 code 调用后端接口,向微信服务器请求用户信息
    this.code = sessionStorage.getItem('wxCode')
    console.log('9999', this.code)
    // 获取access_token
    if (this.code) {
      const appId = 'xxxx'
      const appsecret = 'yyyyyyyyyyy'
      const res = await axios({
        methods: 'get',
        url: `https://api.weixin.qq.com/sns/oauth2/access_token?appid=${appId}&secret=${appsecret}&code=${this.code}&grant_type=authorization_code`
      })

      if (!res.data.errcode) {
        sessionStorage.setItem('refresh_token', res.data.refresh_token)
        this.wxData = res.data
      } else {
        // 刷新access_token
        const refresh_token = sessionStorage.getItem('refresh_token')
        const res = await axios({
          method: 'get',
          url: `https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=${appId}&grant_type=refresh_token&refresh_token=${refresh_token}`
        })
        this.wxData = res.data
      }
      // 获取用户信息
      const userData = await axios({
        method: 'get',
        url: `https://api.weixin.qq.com/sns/userinfo?access_token=${this.wxData.access_token}&openid=${this.wxData.openid}&lang=zh_CN`
      })
      console.log('>>>>', userData)
    }
  }

通过用户信息唯一标识openid调接口绑定登录用户,实现微信登录,下次通过调接口判断有绑定记录来实现免登录

到了这里,关于微信公众号开发以及测试公众号前端自测网页授权的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包