位置: IT常识 - 正文

前端实现 微信扫码登录网站 pc端(二维码嵌套页面) 超详细,包会(前端实现微信联系人二维码)

编辑:rootadmin
前端实现 微信扫码登录网站 pc端(二维码嵌套页面) 超详细,包会 一、准备工作

推荐整理分享前端实现 微信扫码登录网站 pc端(二维码嵌套页面) 超详细,包会(前端实现微信联系人二维码),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:前端实现微信支付,前端实现微信联系人二维码,前端实现微信推送,前端实现微信推送,前端实现微信登录,前端实现微信推送,前端实现微信和Qq切换登录,前端实现微信扫码登录,内容如对您有帮助,希望把文章链接给更多的朋友!

本人申明:本案例使用到的appid和AppSecret都是无效的

appid:应用唯一标识,在微信开放平台提交应用审核通过后获得AppSecret:在微信开放平台提交应用审核通过后获得二、引入地址(有两种引入方式)

1.在根目录html文件引入,既index.html

<script src="https://res.wx.qq.com/connect/zh_CN/htmledition/js/wxLogin.js"></script>

2.通过js添加节点

const script = document.createElement('script')script.type = 'text/javascript'script.src = 'https://res.wx.qq.com/connect/zh_CN/htmledition/js/wxLogin.js'document.body.appendChild(script)三、在需要使用微信登录的地方实例以下 JS 对象var obj = new WxLogin({self_redirect: false,    //默认为false(保留当前二维码) true(当前二维码所在的地方通过iframe 内跳转到 redirect_uri)id: "login_container", //容器的idappid: "wxa3fdea5a3090f", //应用唯一标识,在微信开放平台提交应用审核通过后获得scope: "snsapi_login", //应用授权作用域,拥有多个作用域用逗号(,)分隔,网页应用目前仅填写snsapi_login即可redirect_uri: "https://www.xiang.com//client/index.html",    //扫完码授权成功跳转到的路径// state: "",    //用于保持请求和回调的状态,授权请求后原样带回给第三方。该参数可用于防止 csrf 攻击(跨站请求伪造攻击),建议第三方带上该参数,可设置为简单的随机数加 session 进行校验style: "white", //提供"black"、"white"可选,默认为黑色文字描述href: "data:text/css;base64,LmxvZ2luUGFuZWwubm9ybWFsUGFuZWwgLnRpdGxlIHsNCiAgZGlzcGxheTogbm9uZTsNCn0NCi5xcmNvZGUubGlnaHRCb3JkZXIgew0KICB3aWR0aDogMTc0cHg7DQogIGhlaWdodDogMTc0cHg7DQogIG1hcmdpbi10b3A6IDA7DQogIGJveC1zaXppbmc6IGJvcmRlci1ib3g7DQp9DQouaW1wb3dlckJveCAuaW5mbyB7DQogIGRpc3BsYXk6IG5vbmU7DQp9DQoud2ViX3FyY29kZV90eXBlX2lmcmFtZSB7DQogIHdpZHRoOiAxNzRweDsNCn0NCg==" //自定义样式链接,第三方可根据实际需求覆盖默认样式});

注意事项:

如果二维码出来,但是跳转失败,一定要看看浏览器是否开启了拦截。

前端实现 微信扫码登录网站 pc端(二维码嵌套页面) 超详细,包会(前端实现微信联系人二维码)

href 必须是样式链接/base64格式,转码地址(css文件转码):https://www.lddgo.net/convert/filebasesix

redirect_uri 重定向的地址必须是白名单地址

这里附上我自己的css文件地址(效果参考页尾):

data:text/css;base64,LmxvZ2luUGFuZWwubm9ybWFsUGFuZWwgLnRpdGxlIHsNCiAgZGlzcGxheTogbm9uZTsNCn0NCi5xcmNvZGUubGlnaHRCb3JkZXIgew0KICB3aWR0aDogMTc0cHg7DQogIGhlaWdodDogMTc0cHg7DQogIG1hcmdpbi10b3A6IDA7DQogIGJveC1zaXppbmc6IGJvcmRlci1ib3g7DQp9DQouaW1wb3dlckJveCAuaW5mbyB7DQogIGRpc3BsYXk6IG5vbmU7DQp9DQoud2ViX3FyY29kZV90eXBlX2lmcmFtZSB7DQogIHdpZHRoOiAxNzRweDsNCn0NCg==.loginPanel.normalPanel .title {display: none;}.qrcode.lightBorder {width: 174px;height: 174px;margin-top: 0;box-sizing: border-box;}.impowerBox .info {display: none;}.web_qrcode_type_iframe {width: 174px;}四、获取 code

授权成功以后当前code会拼接在重定向地址后面列:

https://www.xiang.com//client/index.html?code=021NoBFa1u5ORE0600Ja1dDubb2NoBFT&state=undefined

通过两种方法获取:

window获取

window.location.search.substring(6).split('&')[0]

路由监听获取

watch: {$route(){if(this.$route.query.code!=undefined){console.log(this.$route.query.code,this.$route.query.state);}}},五、通过 code 获取access_token

注:这一步可以给后端操作,把获取到的code通过调用接口给予后端,后端拿到数据以后,返回登录状态跟字段,前端也可以获取到所有的状态以后再返回给后端(但是这样没有必要,因为还是要给后端,后端需要筛选字段返回给我们)

https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID    应用唯一标识,在微信开放平台提交应用审核通过后获得&secret=SECRET    应用密钥AppSecret,在微信开放平台提交应用审核通过后获得&code=CODE    填写第四步获取的 code 参数&grant_type=authorization_code    填authorization_code axios({'url': `https://api.xaing.qq.com/sns/oauth2/access_token?appid=wxa3fdea55b5a3090f&secret=089ba1c53233913f94c0381aa53c1d8e&code=CODE&grant_type=authorization_code`,'method': 'get'})

正确返回:

{    "access_token":"ACCESS_TOKEN",     //接口调用凭证    "expires_in":7200,     //access_token接口调用凭证超时时间,单位(秒)    "refresh_token":"REFRESH_TOKEN",    //用户刷新access_token    "openid":"OPENID",     //授权用户唯一标识    "scope":"SCOPE",    //用户授权的作用域,使用逗号(,)分隔    "unionid": "o6_bmasdasdsad6_2sgVt7hMZOPfL"   //当且仅当该网站应用已获得该用户的 userinfo 授权时,才会出现该字段。}最后附上案例:<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title></head><body><div id="login_container"></div></body><script src="https://downs.yaoulive.com/liveJs/axios.min.js"></script><script src="https://res.wx.qq.com/connect/zh_CN/htmledition/js/wxLogin.js"></script><script>var obj = new WxLogin({self_redirect: false,id: "login_container",appid: "wxa3fdea5a3090f",scope: "snsapi_login",redirect_uri: "https://www.xiang.com//client/index.html",// state: "",style: "white",href: "data:text/css;base64,LmxvZ2luUGFuZWwubm9ybWFsUGFuZWwgLnRpdGxlIHsNCiAgZGlzcGxheTogbm9uZTsNCn0NCi5xcmNvZGUubGlnaHRCb3JkZXIgew0KICB3aWR0aDogMTc0cHg7DQogIGhlaWdodDogMTc0cHg7DQogIG1hcmdpbi10b3A6IDA7DQogIGJveC1zaXppbmc6IGJvcmRlci1ib3g7DQp9DQouaW1wb3dlckJveCAuaW5mbyB7DQogIGRpc3BsYXk6IG5vbmU7DQp9DQoud2ViX3FyY29kZV90eXBlX2lmcmFtZSB7DQogIHdpZHRoOiAxNzRweDsNCn0NCg=="});// 这一步可以直接调用接口返回给后端code,由后端来进行这一步if (window.location.search.substring(6).split('&')[0]) {axios({'url': `https://api.weixin.qq.com/sns/oauth2/access_token?appid=wxa3fdea5a3090f&secret=53233913f94c0381aa53c1d8e&code=${window.location.search.substring(6).split('&')[0]}&grant_type=authorization_code`,'method': 'get'})}</script></html>
本文链接地址:https://www.jiuchutong.com/zhishi/290668.html 转载请保留说明!

上一篇:vite基本配置教程(vite搭建项目)

下一篇:微信小程序和webview使用postMessage交互(微信小程序和web端的交互)

  • 微信营销必须知道的8个技巧(微信营销的流程是什么)

    微信营销必须知道的8个技巧(微信营销的流程是什么)

  • 闲鱼怎样发布50个以上商品(闲鱼怎样发布拍卖)

    闲鱼怎样发布50个以上商品(闲鱼怎样发布拍卖)

  • 快手被暂时禁用多久恢复(快手被暂时禁用作品)

    快手被暂时禁用多久恢复(快手被暂时禁用作品)

  • qq群龙王怎么关(怎么关闭qq群的龙王)

    qq群龙王怎么关(怎么关闭qq群的龙王)

  • 二维码是黑色怎么回事(二维码是黑色怎么弄)

    二维码是黑色怎么回事(二维码是黑色怎么弄)

  • 华为手机的智能助手叫什么(华为手机的智能家居在哪里)

    华为手机的智能助手叫什么(华为手机的智能家居在哪里)

  • 手机不能视频通话是怎么回事

    手机不能视频通话是怎么回事

  • 资料卡怎么把头像居中(怎样把资料卡上的图片去掉)

    资料卡怎么把头像居中(怎样把资料卡上的图片去掉)

  • 苹果耳机airpods三代怎么充电(苹果耳机airpods三代)

    苹果耳机airpods三代怎么充电(苹果耳机airpods三代)

  • 电脑正在注销什么意思(电脑正在注销是怎么回事)

    电脑正在注销什么意思(电脑正在注销是怎么回事)

  • 网站为什么要优化(网站为什么要seo?)

    网站为什么要优化(网站为什么要seo?)

  • 华为p30怎么开启otg(华为p30怎么开启hd模式)

    华为p30怎么开启otg(华为p30怎么开启hd模式)

  • 苹果7插耳机的地方在哪(苹果插耳机的孔在哪)

    苹果7插耳机的地方在哪(苹果插耳机的孔在哪)

  • oppok5有nfc吗(oppok5支不支持nfc)

    oppok5有nfc吗(oppok5支不支持nfc)

  • soulapp是什么意思(soul是什么软件里边有功能)

    soulapp是什么意思(soul是什么软件里边有功能)

  • 小米手环1怎么连接手机(小米手环1怎么开机)

    小米手环1怎么连接手机(小米手环1怎么开机)

  • 电脑手写输入法怎么设置(电脑手写输入法下载安装)

    电脑手写输入法怎么设置(电脑手写输入法下载安装)

  • 苹果xsmax快充支持到多少w(苹果xsmax快充功率)

    苹果xsmax快充支持到多少w(苹果xsmax快充功率)

  • 卸载quik有什么影响(卸载软件安全吗)

    卸载quik有什么影响(卸载软件安全吗)

  • 怪兽充电宝可以买吗(怪兽充电宝可以自己充电吗)

    怪兽充电宝可以买吗(怪兽充电宝可以自己充电吗)

  • cpu风扇转速多少正常(cpu风扇)

    cpu风扇转速多少正常(cpu风扇)

  • qq拉黑的人在哪里查看(qq拉黑的人在哪里拉出来)

    qq拉黑的人在哪里查看(qq拉黑的人在哪里拉出来)

  • 苹果设置壁纸缩小方法(苹果壁纸怎么缩)

    苹果设置壁纸缩小方法(苹果壁纸怎么缩)

  • 微信公众平台开发有啥技术(微信公众平台登录入口)

    微信公众平台开发有啥技术(微信公众平台登录入口)

  • Linux系统下强大的lsof命令使用宝典(linux系统 推荐)

    Linux系统下强大的lsof命令使用宝典(linux系统 推荐)

  • 黄喉蜂虎,西班牙埃斯特雷马杜拉 (© Martin Demmel/Offset)(黄喉蜂虎鸟是保护动物吗)

    黄喉蜂虎,西班牙埃斯特雷马杜拉 (© Martin Demmel/Offset)(黄喉蜂虎鸟是保护动物吗)

  • 烟花绽放的除夕夜,中国 (© MediaProduction/E+/Getty Images)(烟花绽放的除夕夜题目)

    烟花绽放的除夕夜,中国 (© MediaProduction/E+/Getty Images)(烟花绽放的除夕夜题目)

  • 织梦Dedecms限制栏目列表生成的最大页数(织梦cms要钱吗)

    织梦Dedecms限制栏目列表生成的最大页数(织梦cms要钱吗)

  • 已开普通发票记账联丢失怎么办?
  • 汽车租赁企业
  • 以前年度损益调整在借方是什么意思
  • 小规模企业收入怎么做账
  • 增值税零申报触发附加税零申报
  • 不同组织的区别主要体现在哪些方面
  • 应交税金的负数金额要怎么调整
  • 当月发票已认证还能作废吗
  • 企业认缴出资怎么做账
  • 摊销商标使用权的会计科目
  • 建筑工程劳务承包
  • 公司发给员工的奖金要交税吗
  • 加油费发票7月1日开具
  • 新个税申报身份怎么填
  • 不同行业的单位名称
  • 车船税在哪个科目下
  • 多交附加税不退怎么做分录
  • 商铺土地增值税清算
  • 购买土地交易费用怎么算
  • qqpcrtp.exe是什么进程 如何删除qqpcrtp进程
  • 文件夹不能打开没有反应
  • 在建工程工程款优先受偿权
  • elementui中的el-tab-pane为什么内容会为0
  • 如何申请办理港澳通行证
  • 冰雪节上的冰雕图片
  • 专家评审费发放新规定2023
  • 汇算清缴资产总额怎么算
  • 公司给员工付个税怎么算
  • 公司给员工餐补计入
  • 支付宝手机网站支付不风控
  • 环境检测费计入什么费用
  • 销售费用可以开专票吗
  • 法人跟纳税人必须是一个人吗
  • php swoft
  • 销售原材料怎么入账
  • 代开的普通发票如何盖章
  • 旧固定资产出售增值税率如何计算
  • 加计减免的分录怎么做
  • 公司一年没有业务
  • 用友t3财务报表导出
  • java替换集合的元素
  • dedecms怎么改图片
  • 商铺转让费的会计分录
  • 分公司负责人如何开展工作的
  • 累计增长率如何计算公式
  • 营改增后为什么利息要提供发票吗
  • 退股东股本账务处理
  • 食堂辅助账的账务处理
  • 期间费用怎么区分
  • 个体工商户所得税率
  • 核定应税所得率征收
  • 个税公司少申报一个月会对个人有什么影响
  • 制造费用结转到哪个科目
  • 土地增值税怎么预交税款
  • 通过实例认识MySQL中前缀索引的用法
  • SQL Server Alwayson创建代理作业的注意事项详解
  • mysql sql 基础教程
  • 解决windows hello人脸识别找不到摄像头
  • freebsd重启命令
  • centos安装类型选择
  • linux,Centos5,Ubuntu关掉ipv6的方法
  • win7如何开启飞行模式
  • Win10 Mobile RS2预览版14915上手视频评测
  • win7系统突然打印不了
  • iptables添加规则立即生效
  • win7 host文件路径
  • Unity3D游戏开发(第2版)pdf
  • bootstrap怎么用
  • javascript要怎么学
  • 3行程序搞定SVM分类-用JAVA程序调用LibSVM API 最简单的示例
  • unity字符串
  • Ubuntu修改用户名
  • 总体把握是什么意思
  • Unity3d C# HttpWebRequest 异步下载文件
  • 自定义圆角控件
  • jquery数据绑定
  • 200平交多少契税
  • 国家税务总局23号文件
  • 烟草什么品牌好
  • 年报基础数据怎么查
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设