企业微信扫码登录

遇到一个pc端项目,要接入企业微信的登录,怎么做的呢?就是首页做成企业微信的扫码登录界面,扫码后的地址就是自己项目的首页,只是首页获取到code的话 就调登录接口,然后进入系统就可以了。如果没权限进入系统的人,在扫码的时候就提示了
官方文档地址:https://developer.work.weixin.qq.com/document/path/91019

一、首先项目的首页弄成这个二维码样式

1.在需要展示企业微信网页登录二维码的网站引入如下JS文件,vue项目的话就是index.html中引入

<script type="text/javascript" src="https://wwcdn.weixin.qq.com/node/wework/wwopen/js/wwLogin-1.2.7.js"></script>

2.vue文件中,在登录页 给上id为codeDom的div元素,用来展示二维码

<div id="codeDom"></div>

3.必须在mounted里写入,因为mounted时才会挂载dom元素,否则报错

mounted:{
	let q = this.$qs.parse(window.location.search.slice(1)) //这里我是引入了qs插件来获取参数
    console.log(q) //这里是取链接后面的参数,如果有code就调登录接口
    if (this.isHave(q.code)) {
      //只要用户扫码了二维码,页面就会自动刷新,并且在原先的首页链接后面拼上code参数,识别到code就可以进系统了
      this.qrcodelogin(q.code)
    }
	let url = "https://www.baidu.com/",//假设这个是自己项目的首页地址
    var wwLogin = new WwLogin({
        id: "codeDom", //页面中id为codeDom的元素
        appid: "",//企业微信的CorpID,在企业微信管理端查看
        agentid: "",//	授权方的网页应用ID,在具体的网页应用中查看
        redirect_uri: encodeURI(url),//重定向地址,需要进行UrlEncode
    })
}
methods: {
	// 企业微信扫码登录接口
    qrcodelogin (code) {
      let data = {
        code: code
      }
      //这边就是调接口,如果返回成功 就可以登录进系统了
      this.$api.login 
        .qrcodelogin(data)
        .then(res => {
          console.log(res)
          if (res.code == 0) {
          	//登录成功时 可以拿到用户信息
            sessionStorage.setItem('token', res.data.token) // 保存用户到本地会话
            sessionStorage.setItem('user', res.data.name) // 保存用户到本地会话
            this.$router.push('/') // 登录成功,跳转到主页
          } else {
            this.$message({ message: res.message, type: 'error' })
          }
        })
        .catch(err => {
          this.$message({ message: err.message, type: 'error' })
        })
    },
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值