- 通過接口獲取二維碼唯一標識,例如:qrcodeId
- 通過?qrcodejs2插件生成 二維碼(二維碼內容就是 qrcodeId,具體根據APP 需要)
- 循環調用接口,查看掃碼狀態(app是否掃碼確認登錄)
//下載插件
npm install --save qrcodejs2 <template><div><div id="qrcode"></div> <!-- 創建一個div,并設置id為qrcode --></div>
</template><script>
import QRCode from 'qrcodejs2' // 引入qrcode
export default {methods: {handover() {//獲取二維碼getQRCode().then((res) => {let { msg, code, data } = res;if (code != "success") return;//清除上一次生成的二維碼(看需要 如只生成一次則不需要)//document.getElementById("qrcode").innerHTML = "";//生成二維碼let qrcode = new QRCode("qrcode", {width: 140,height: 140,text: `qrcodeId:${data.qrcodeId},exp:${data.exp}`, //需要生成的內容(看APP需要)});qrcode._el.title = ""; //清除標題,不然鼠標停留在二維碼上面會暴露二維碼內容//循環調用接口查看掃碼狀態this.loopLook();});},},//循環調用接口 查看掃碼狀態loopLook() {let params = {qrcode: "111",};LoginByRcode(params).then((res) => {let { msg, code, data } = res;if (data == "二維碼過期!") {//二維碼過期} else if (code == "success") {//app 確認登錄this.$router.push("/index");} else {//請求成功 一秒鐘調用一次查看狀態setTimeout(() => {this.loopLook();}, 1000);}});},
};
</script>
第二種就是建立長連接了,websocket