在Vue3中实现微信登录涉及前端生成二维码、处理回调、与后端交互等多个环节。以下是详细实现步骤、常见场景、问题解决方案及完整代码示例:
一、实现步骤与代码示例
1. 准备工作
- 注册微信开放平台:获取
AppID
和AppSecret
,配置回调地址redirect_uri
(需HTTPS协议)。 - 安装依赖:使用
qrcode
生成二维码,或引入微信官方JS库wxLogin.js
。npm install qrcode axios # 基础依赖
2. 前端生成二维码
-
方式一:使用
qrcode
库生成
适用于自定义二维码样式:<template> <div id="qrcode"></div> </template> <script setup> import QRCode from 'qrcode'; const appId = import.meta.env.VITE_WECHAT_APPID; const redirectUri = encodeURIComponent(import.meta.env.VITE_REDIRECT_URI); onMounted(async () => { const loginUrl = `https://open.weixin.qq.com/connect/qrconnect?appid=${appId}&redirect_uri=${redirectUri}&response_type=code&scope=snsapi_login`; await QRCode.toCanvas(document.getElementById('qrcode'), loginUrl, { width: 200 }); }); </script>
-
方式二:内嵌微信官方二维码
需动态加载wxLogin.js
,避免跨域问题:<template> <div id="login_container"></div> </template> <script setup> onMounted(() => { const script = document.createElement('script'); script.src = 'https://res.wx.qq.com/connect/zh_CN/htmledition/js/wxLogin.js'; script.onload = () => { new window.WxLogin({ id: 'login_container', appid: 'YOUR_APPID',