位置: 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端的交互)

  • 无线wifi连接上无法上网该怎么办(无线wifi)(无线wifi连接上用不了)

    无线wifi连接上无法上网该怎么办(无线wifi)(无线wifi连接上用不了)

  • win7截图快捷键ctrl加什么(win7截图快捷键命令)

    win7截图快捷键ctrl加什么(win7截图快捷键命令)

  • 飞行模式和关机有什么区别(飞行模式和关机提示音一样吗)

    飞行模式和关机有什么区别(飞行模式和关机提示音一样吗)

  • opporeno4的充电速度(opporeno4充电快吗?)

    opporeno4的充电速度(opporeno4充电快吗?)

  • 快手推广保证金可以不交吗(快手推广保证金和店铺保证金区别)

    快手推广保证金可以不交吗(快手推广保证金和店铺保证金区别)

  • word怎么统计纯汉字个数(word怎么统计纯汉字个数不包括标点符号)

    word怎么统计纯汉字个数(word怎么统计纯汉字个数不包括标点符号)

  • 哔哩哔哩和抖音区别(哔哩哔哩和抖音哪个早)

    哔哩哔哩和抖音区别(哔哩哔哩和抖音哪个早)

  • 拼多多一天可以帮别人助力多少次(拼多多一天可以退货多少次)

    拼多多一天可以帮别人助力多少次(拼多多一天可以退货多少次)

  • 小米m1912g7be什么型号(小米m1912g7be什么型号售价多少)

    小米m1912g7be什么型号(小米m1912g7be什么型号售价多少)

  • 已下载的描述文件怎么删除不了(已下载的描述文件怎么删除)

    已下载的描述文件怎么删除不了(已下载的描述文件怎么删除)

  • 华为手机听不到对方声音怎么回事(华为手机听不到对方声音怎么回事但免提能听到)

    华为手机听不到对方声音怎么回事(华为手机听不到对方声音怎么回事但免提能听到)

  • 美团的月售是怎样算的(美团的月售是怎样算的,是指人数还是指件数)

    美团的月售是怎样算的(美团的月售是怎样算的,是指人数还是指件数)

  • 如何在淘宝卖自己商品(如何在淘宝卖自己想卖的)

    如何在淘宝卖自己商品(如何在淘宝卖自己想卖的)

  • 高德地图标注地点(高德地图标注地名)

    高德地图标注地点(高德地图标注地名)

  • 苹果11promax怎么显示电量(苹果11promax怎么样 优点和缺点)

    苹果11promax怎么显示电量(苹果11promax怎么样 优点和缺点)

  • 华为mate30与mate20的区别(华为mate30与mate20pro)

    华为mate30与mate20的区别(华为mate30与mate20pro)

  • 淘宝的喵铺在哪里进去(喵铺淘气值在哪里看)

    淘宝的喵铺在哪里进去(喵铺淘气值在哪里看)

  • 苹果11充电器和之前一样吗(苹果11充电器和苹果7一样吗)

    苹果11充电器和之前一样吗(苹果11充电器和苹果7一样吗)

  • wps怎么在空白加横线(wps里面空白处怎么添加横线)

    wps怎么在空白加横线(wps里面空白处怎么添加横线)

  • nova5pro和nova5有什么区别(nova5pro和nova5区别)

    nova5pro和nova5有什么区别(nova5pro和nova5区别)

  • a1691是什么版本(A1691是什么版本)

    a1691是什么版本(A1691是什么版本)

  • vivo手机相机时间水印设置在哪里(vivo手机相机时间地点设置在哪里)

    vivo手机相机时间水印设置在哪里(vivo手机相机时间地点设置在哪里)

  • 手机怎么散热快(华为手机怎么散热快)

    手机怎么散热快(华为手机怎么散热快)

  • 应交税费负数调整到其他非流动资产
  • 小规模纳税人升级一般纳税人流程
  • 补充登记法怎么写
  • 开专用发票可以直接写加工费这个明细吗
  • 网络贷款需要缴纳保证金吗
  • 固定资产加速折旧税收优惠政策
  • 个人出口货物到国外
  • 企业一直亏损但是汇算清缴调增
  • 财政补贴金额
  • 转让土地缴纳增值税进项如何抵扣
  • 三栏式和多栏式的账目有哪些
  • 简易征收如何入账
  • 外出拓展训练活动所花的费用怎么做分录?
  • 驻外人员医保报销
  • 消防增值服务
  • 如何理解消费税的作用
  • 营业成本包括费用类吗
  • 企业间借款利息账务处理
  • 打官司收案是什么意思
  • 财务费用结转本年利润借贷方怎么记
  • 资源税纳税期限按月还是按季
  • 新公司能先用别人的钱吗
  • 应交增值税有哪些
  • 会计利润利润总额的计算
  • linux系统开机黑屏怎么办
  • 长期待摊费用转入成本分录
  • win10桌面2怎么使用
  • win11可以触屏吗
  • 企业研发费用可以只加计一半吗
  • hkc中文是什么意思
  • clipbrd.exe是什么意思
  • 更改公司章程发函怎么写
  • 车辆购置税的纳税义务发生时间为
  • 金融企业财务规则(征求意见稿)
  • 净亏损会影响所有者权益吗
  • 递延收益摊销金额
  • 酒店购买天然气流程
  • php实现简单的登录验证
  • vue入门
  • php代码加密方式
  • php代理访问
  • 投资性房地产的减值准备可以转回吗
  • 房地产企业出售房产增值税
  • js基本数据类型和复杂数据类型的区别
  • 生育保险断缴后果
  • 现金溢余涉及的科目
  • 报废的设备属于什么
  • 非营利组织缴纳增值税账务处理
  • 代销费是谁给谁
  • 政府会计资产处置费用科目
  • 出口企业样品收入分录
  • 暂估入库的商品能出库吗
  • 开具红字发票抵扣后如何退税?
  • 支付给个人的佣金没有发票
  • 发工资扣的个人社保计入哪个科目
  • 居间活动费用由谁负担
  • 工程类企业存货包括哪些
  • 餐饮行业月末结转成本怎么算
  • sql server2005一个表中可以设置
  • win7桌面怎么设置到d盘
  • 微软停止对xp的操作
  • ubuntu18 设置静态ip
  • windows定时关机计划
  • win7系统怎么设置屏幕常亮
  • unity开发游戏教程
  • java的理解
  • js opendialog
  • Extjs中DisplayField的日期或者数字格式化扩展
  • php监控源码
  • 批处理自动登录有密码的程序
  • vue css
  • shell监控http脚本
  • PreferenceActivity与PreferenceFragment应用
  • 安徽监狱待遇qzzn
  • 百旺税控盘口令认证失败PiN被锁
  • 个人所得税每年都可以退税吗
  • 供暖企业所涉及的行业
  • 五证合一后还需要去税务局吗
  • 浙江省税务师事务所排名
  • 美丽重生李晓晓免费阅读
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设