微信内嵌式二维码网页,扫码登陆步骤

概况

需求:用户通过微信扫码登陆账号,实现如下效果!

微信二维码登陆

微信提供的登陆方式有很多种,就如公众号扫码登陆,弹窗二维码登陆,而现在我们要使用的是内嵌式二维码登陆,详细可前往 官方文档

准备工作,需求前往微信开放平台创建应用

并从网站应用获取appid、appSecret

首先

引入wxLogin.js脚本,这有好几种方法!

js 复制代码
// 脚本引入
<script type="text/javascript" src="http://res.wx.qq.com/connect/zh_CN/htmledition/js/wxLogin.js"></script>

// vue 也可安装vue-wxlogin 第三方插件
npm install vue-wxlogin --save-dev

上面的使用方法,就不过多介绍了哈,如果你像我使用的是vue,并且不太想用第三方插件,可使用如下:

js 复制代码
<script setup lang="ts">

onMounted(() => {
  setWxerwma()
})

// 实例微信js对象
function setWxerwma() {
  const s = document.createElement('script')
  s.type = 'text/javascript'
  s.src = 'https://res.wx.qq.com/connect/zh_CN/htmledition/js/wxLogin.js'
  const wxElement = document.body.appendChild(s)
  wxElement.onload = function () {
    const obj = new WxLogin({
      self_redirect: false,
      id: 'weixinLogin', // 需要显示的容器id
      appid: 'xxxxxx', // 微信开放平台appid wx*******
      scope: 'snsapi_login', // 网页默认即可
      redirect_uri: encodeURIComponent('xxxxxxxxxxxxxx'), // 授权成功后回调的url
      state: Math.ceil(Math.random() * 1000), // 可设置为简单的随机数加session用来校验
      style: 'black', // 提供"black"、"white"可选。二维码的样式
      href: 'data:text/css;base64,LmltcG93ZXJCb3ggLnFyY29kZSB7bWFyZ2luLXRvcDowO30KLmltcG93ZXJCb3ggLnRpdGxlIHtkaXNwbGF5OiBub25lO30=', // 外部css文件url,需要https
    })
  }
}
</script>

<template>
    <div>
        <div id="weixinLogin" />
    </div>
</template>

上面的功能,我就详细介绍下href这个参数,是用来修改二维码样式,可用css链接地址,也可用base64,修改的css样式名也可打开控制器,也可看官方提供的如下

css 复制代码
.impowerBox .qrcode {width: 200px;}
.impowerBox .title {display: none;}
.impowerBox .info {width: 200px;}
.status_icon {display: none}
.impowerBox .status {text-align: center;} 

如图,我隐藏标题、跟间距 base64编译地址

扫码成功后,就可在返回的链接上获取到redirect_uri获取到code,用获取到得code去兑换access_token如官网所示:

并将code传给后端(前端去发送的话,会遇到跨域问题)处理,在去发送上方请求,填写对应的appidsecretcode、固定的grant_type,并可返回扫码用户唯一标识openid等,就算完成了哈!

后续还有问题的话,在补充哈~

相关推荐
夏天要喝冰可乐9 分钟前
一处写作,多平台分发:我给掘金做了一款开源 Chrome 插件
前端·chrome·vibecoding
货拉拉技术20 分钟前
货拉拉开源Hadice:安卓 & 鸿蒙桌面调试工具
前端
程序猿DD1 小时前
OctaFuse Gateway 2.11.0:流式请求优化、用户折扣策略与错误契约升级
前端·后端
尾善爱看海1 小时前
《JavaScript 数组操作全攻略:12 类 API + 30 个实战场景 + 20 个避坑指南》
前端·javascript·面试
计算机魔术师1 小时前
Anthropic 估值冲 4 万亿,但企业客户已经偷偷换了便宜模型
前端
王六米。1 小时前
RAG知识库建设 文档解析 切分与索引如何衔接
服务器·前端·网络·企业数字化转型·智钳智能盒子
名字还没想好☜2 小时前
React 文件上传实战:预览 URL 回收、多文件逐个进度与拖拽放置区踩坑
前端·react·next.js
console.log('npc')2 小时前
06 — Model 层:数据模型与操作
前端·后端·node.js·express
linux_cfan2 小时前
16 · `custom-media-element`:属性拦截与转发
前端·javascript·音视频
右耳朵猫AI2 小时前
Web前端周刊2026W38 | React 19.3 发布、StyleX 深潜、jsdom 30.1 提速
前端·javascript·react.js·typescript·node.js