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

  • 网站收录决定最终排名有什么(网站收录是啥)

    网站收录决定最终排名有什么(网站收录是啥)

  • airpods pro敲击功能怎么设置(airpodspro敲击功能没了)

    airpods pro敲击功能怎么设置(airpodspro敲击功能没了)

  • 红米note11怎么关闭hd(红米note11怎么关闭今日推荐)

    红米note11怎么关闭hd(红米note11怎么关闭今日推荐)

  • qq人脸识别是别人的怎么解除(qq人脸识别是别人的脸怎么更换)

    qq人脸识别是别人的怎么解除(qq人脸识别是别人的脸怎么更换)

  • 华为手机在哪里查询购买日期(华为手机在哪里设置时间24小时)

    华为手机在哪里查询购买日期(华为手机在哪里设置时间24小时)

  • qq空间回复别人评论怎么发表情包(qq空间回复别人评论其他人能看到吗)

    qq空间回复别人评论怎么发表情包(qq空间回复别人评论其他人能看到吗)

  • Mac OS X怎么进行优化(mac os操作教程)

    Mac OS X怎么进行优化(mac os操作教程)

  • 小米10搭载的什么马达(小米10搭载什么系统好)

    小米10搭载的什么马达(小米10搭载什么系统好)

  • 动作设置可以指定的鼠标动作不包括(动作设置可以指定的鼠标动作包括哪些)

    动作设置可以指定的鼠标动作不包括(动作设置可以指定的鼠标动作包括哪些)

  • 谷歌账号注册手机号无法验证怎么办(谷歌账号注册手机号格式)

    谷歌账号注册手机号无法验证怎么办(谷歌账号注册手机号格式)

  • 手机斗鱼有夜间模式吗(斗鱼怎么开夜间)

    手机斗鱼有夜间模式吗(斗鱼怎么开夜间)

  • m1912g7be是小米什么型号(m1912g7be是小米什么型号多少钱)

    m1912g7be是小米什么型号(m1912g7be是小米什么型号多少钱)

  • cpu五六十度正常吗(cpu温度六十多度正常吗)

    cpu五六十度正常吗(cpu温度六十多度正常吗)

  • 华为手环一定要配华为手机吗(华为手环一定要下载华为运动健康吗)

    华为手环一定要配华为手机吗(华为手环一定要下载华为运动健康吗)

  • soul注册满30天才能注销吗(soul注册100天)

    soul注册满30天才能注销吗(soul注册100天)

  • 钉钉都能监控什么(钉钉有监控系统吗)

    钉钉都能监控什么(钉钉有监控系统吗)

  • 移动卡怎么转电信卡(移动卡怎么转电信卡电话号码不变)

    移动卡怎么转电信卡(移动卡怎么转电信卡电话号码不变)

  • 苹果11g开头是哪里生产(苹果11g0开头)

    苹果11g开头是哪里生产(苹果11g0开头)

  • excel怎么自动求和(excel怎么自动求积)

    excel怎么自动求和(excel怎么自动求积)

  • qq上有群发吗(扣扣有群发助手吗)

    qq上有群发吗(扣扣有群发助手吗)

  • u盘被水泡了一天还有用吗(u盘泡了水怎么办)

    u盘被水泡了一天还有用吗(u盘泡了水怎么办)

  • 数据预处理包括哪些内容(数据预处理包括哪些阶段)

    数据预处理包括哪些内容(数据预处理包括哪些阶段)

  • airpods怎么调节音量(airpods怎么调节铃声音量)

    airpods怎么调节音量(airpods怎么调节铃声音量)

  • 网易云播放次数怎么刷(网易云播放次数不增加)

    网易云播放次数怎么刷(网易云播放次数不增加)

  • 苹果十一是5g吗(iphone十一是5g吗)

    苹果十一是5g吗(iphone十一是5g吗)

  • 微信即刻视频怎么退出(微信即刻视频怎么保存)

    微信即刻视频怎么退出(微信即刻视频怎么保存)

  • mac截图格式如何更改?修改Mac屏幕快照格式的方法介绍(mac截图如何保存到照片)

    mac截图格式如何更改?修改Mac屏幕快照格式的方法介绍(mac截图如何保存到照片)

  • Vue中设置背景图片和透明度(vue设置背景图片透明度)

    Vue中设置背景图片和透明度(vue设置背景图片透明度)

  • 税务纳税等级m级是什么等级
  • 现代服务税目包含哪些
  • 个体户可以不开公户吗?打款到法人卡
  • 付境外公司佣金怎么做账
  • 厂区打地坪会计怎么做账
  • 小规模纳税人免税销售额是含税还是不含税
  • 应税职工福利费在应纳税所得额里面吗
  • 公司支付员工工伤赔偿怎么做账
  • 银行收取的利息要交税吗
  • 企业收到工程款开发票要扣哪些税
  • 被辞退还有退休金吗
  • 增值税专票盖章正确位置
  • 小微企业享受优惠
  • 商标是按年交费的吗
  • 福利费用属于什么费用
  • 个人所得税纳税比例
  • 企业白条报销和采取措施
  • 超市购销和联营有什么区别
  • 费用开两次发票怎么入账?
  • vue2-elm
  • window最新漏洞
  • 应付账款暂估借方余额怎么处理
  • 个人取得的工资、薪金所得应按次征收个人所得税
  • 纳税申报表怎么打印
  • 王者荣耀花木兰打法教学
  • php mktime函数
  • 简易征收月末需要转出未交增值税吗
  • php怎么学
  • 小微企业减免额怎么计算
  • nbscheduler是什么程序
  • NDSTray.exe - NDSTray是什么进程 有什么用
  • 商品进销差价的作用
  • 异常生物见闻录
  • 新准则与旧准则比较有哪些新变化
  • 金蝶账无忧待遇和金蝶一样吗
  • 投资性房地产公允价值大于账面价值计入
  • 公司更衣柜费用怎么算
  • 政府补助的会计准则
  • 资本化支出的账务处理
  • 税务局手续费返还政策
  • 其他综合收益属于什么类
  • 应交税费借方属于什么科目
  • python的多进程模块
  • java默认访问权限修饰符
  • 将织梦dedecms转换到wordpress
  • centos7.0安装
  • db2数据库备份文件为bkd格式
  • 一般纳税人首次申领专票
  • 百旺税控盘汇总上传如何检查
  • 采购货物没有发票开出去有发票有什么风险
  • 企业所得税汇算清缴操作流程
  • 企业与债权人进行债务重组
  • 生产成本帐
  • 新成立企业多长时间可以销售小微企业
  • 其它收益和递延收益的区别
  • 提取维简费分录
  • 房地产公司退房款怎么做账
  • 出口退税暂不抵税怎么办
  • 旅行社开的发票如何记账?
  • 工资计提和发放账务处理
  • 会计信息不采集可以考初级吗
  • 在mysql中使用什么语句来查询数据
  • java数据类型举例
  • mysql连接查询的几种方式
  • 电脑windows怎么查
  • XP系统升级WIN7系统
  • xp系统打开注册表
  • xp系统怎么修改网络ip地址
  • win2003设置网络共享
  • windows8开机慢怎么办
  • win7正版提示
  • js cocos
  • 安卓十游戏怎么玩
  • exit(1)和return的区别
  • cocos开发游戏
  • 从零基础开始
  • 工作笔记范文100篇简短
  • python 电话号码
  • python图片验证码输入错误不能点登陆
  • 无自然人登记信息是怎么回事
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设