位置: IT常识 - 正文

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

发布时间:2024-01-10
前端实现 微信扫码登录网站 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端的交互)

  • 华为nova4e如何唤醒语音助手(华为nova4怎么设置语音唤醒功能)

    华为nova4e如何唤醒语音助手(华为nova4怎么设置语音唤醒功能)

  • 电脑桌面比例怎么调整(电脑桌面比例怎么调整快捷键)

    电脑桌面比例怎么调整(电脑桌面比例怎么调整快捷键)

  • 拼多多删除好友后对方列表里还有吗(拼多多删除好友怎么删)

    拼多多删除好友后对方列表里还有吗(拼多多删除好友怎么删)

  • 苹果手机输入旧密码是什么(苹果手机输入旧密码正确却打不开)

    苹果手机输入旧密码是什么(苹果手机输入旧密码正确却打不开)

  • 华为屏幕右移了怎么复原(华为屏幕桌面偏右)

    华为屏幕右移了怎么复原(华为屏幕桌面偏右)

  • 手机外放声音小怎么办(手机外放声音小怎么解决)

    手机外放声音小怎么办(手机外放声音小怎么解决)

  • 卡槽怎么放卡(苹果双卡双待卡槽怎么放卡)

    卡槽怎么放卡(苹果双卡双待卡槽怎么放卡)

  • 华为nova7怎么截屏(华为Nova7怎么截图锁屏壁纸)

    华为nova7怎么截屏(华为Nova7怎么截图锁屏壁纸)

  • 华为nova7刷新率是多少(华为nova7刷新率是多少hz)

    华为nova7刷新率是多少(华为nova7刷新率是多少hz)

  • soul主页可见什么意思(soul 主页可见)

    soul主页可见什么意思(soul 主页可见)

  •  华为p30屏幕上的小白圈怎么去掉(华为p30屏幕上有个方框怎么关)

    华为p30屏幕上的小白圈怎么去掉(华为p30屏幕上有个方框怎么关)

  • 米粉卡怎么注销(米粉卡怎么注销 电信)

    米粉卡怎么注销(米粉卡怎么注销 电信)

  • 电脑屏幕是黑的怎么办(电脑屏幕是黑的但是图标都在)

    电脑屏幕是黑的怎么办(电脑屏幕是黑的但是图标都在)

  • 8p没耳机孔怎么解决(8p没耳机孔怎么充电)

    8p没耳机孔怎么解决(8p没耳机孔怎么充电)

  • 安卓怎样解决手机内存不足(安卓手机小妙招)

    安卓怎样解决手机内存不足(安卓手机小妙招)

  • 美版充电器和国行差别(美版充电器和国内一样吗)

    美版充电器和国行差别(美版充电器和国内一样吗)

  • 华为mate30pro5g颜色(华为mate30pro4g颜色)

    华为mate30pro5g颜色(华为mate30pro4g颜色)

  • ps透明色怎么设置(怎么用ps设置透明色)

    ps透明色怎么设置(怎么用ps设置透明色)

  • iponeid怎么注册(苹果appleid怎么注册)

    iponeid怎么注册(苹果appleid怎么注册)

  • 苹果11外形尺寸(苹果11外形尺寸多大)

    苹果11外形尺寸(苹果11外形尺寸多大)

  • iPhone6怎么隐藏关闭推送消息(iphone6怎么隐藏相册)

    iPhone6怎么隐藏关闭推送消息(iphone6怎么隐藏相册)

  • 闲鱼币有什么用处(闲鱼币有什么用可以换钱吗)

    闲鱼币有什么用处(闲鱼币有什么用可以换钱吗)

  • 重装系统后出现一堆字母(重装系统后出现ctrl+alt+del)

    重装系统后出现一堆字母(重装系统后出现ctrl+alt+del)

  • 打不开exe程序(exe都打不开)

    打不开exe程序(exe都打不开)

  • deskup.exe是什么进程 deskup进程作用是什么(kpupgrader.exe是什么)

    deskup.exe是什么进程 deskup进程作用是什么(kpupgrader.exe是什么)

  • 增值税电子发票可以作废吗
  • 平价转让股权如何做
  • 一般纳税人优惠政策最新2022标准
  • 小规模企业税收优惠政策2023
  • 土地税房产税会计分录
  • 发票冲红重开,重开时是按新税率还是旧税率
  • 货运代理费属于运费还是其他
  • 其他综合收益影响所有者权益吗
  • 月末将应交未交增值税转入未交增值税
  • 程序法和实体法的划分标准
  • 筹资活动现金流量净额为负
  • 买车时的保险包括哪些费用,多少钱
  • 融资租赁首付款支付给供应商
  • 建筑业购买车辆怎么入账
  • 不征税收入和免税收入有什么区别
  • 行政单位基建账统一核算
  • 没收到发票可以勾选认证吗
  • 成品油发票应该怎么冲红?
  • 分公司的财产归总公司所有吗
  • 差额征税的服务费怎么入账
  • 坏账准备转回影响应交所得税吗
  • 评估报告怎么算合法
  • 贸易公司成本怎么计算
  • 银行保证金账务处理流程
  • 方正书版10.0教程
  • 桌面图标归纳
  • 企业收到款项
  • 生产型企业出口退税会计分录
  • 最多人用的操作系统
  • php proto
  • php修改ip地址
  • 罗卡购物村
  • 坏账准备的借贷方向表示什么意思
  • thinkphp jquery实现图片上传和预览效果
  • vue0
  • ts与js的优缺点
  • cvpr2020目标跟踪
  • 税审报告什么时候出
  • python sockets
  • 建筑施工企业适用什么会计制度
  • 企业申请进出口权经营范围
  • 房地产企业开发成本科目明细
  • 付款申请单属于什么凭证
  • 小规模企业收到专票怎么做账
  • 应收利息的会计分录怎么写
  • 租赁收入相关的会计准则
  • 银行的手续费开票怎么开
  • 票据到期无力支付怎么办
  • 中介收取中介费的法律依据
  • 集资建房有维修基金吗
  • 企业免征税范围有哪些
  • 会计工作重点工作
  • 会计学主要是学什么
  • 私营企业固定资产法律制度
  • c++ 虚数
  • mysql无法配置
  • sqlserver连接失败怎么办
  • 这张图告诉我们什么道理
  • 什么是bash命令
  • 电脑没有声音怎么恢复按哪个键
  • 屏保 win7
  • centos minio
  • 代理服务器只能代理客户端http的请求
  • 如何设置windows hello
  • Linux中的stat命令使用简介
  • quick cocos2dx-Lua中的自定义事件的使用
  • jquery对动态生成的进行操作
  • jquery轮播代码
  • jquery日期控件onchange事件
  • android应用程序
  • js class实现原理
  • dom使用
  • python 字符 字符串
  • python和微信交互
  • javascript开关
  • javascript 自定义类
  • 黄金税率是多少
  • 加强税务系统党委全面监督工作
  • 中加税务信息互换执行
  • 重庆外经证网上报验流程及时间
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号