首页 > 其他分享 >记录pc网站微信登录(内嵌二维码方式)

记录pc网站微信登录(内嵌二维码方式)

时间:2023-06-29 16:56:05浏览次数:49  
标签:redirect 内嵌 微信 self js pc 二维码 href

官方文档地址:https://developers.weixin.qq.com/doc/oplatform/Website_App/WeChat_Login/Wechat_Login.html

第一步:

引入官方js  http://res.wx.qq.com/connect/zh_CN/htmledition/js/wxLogin.js

或者

把js下载下来放到自己项目里引用  好处是可以自己修改一些东西

!(function (e, t) {
  e.WxLogin = function (e) {
    var r = 'default';
    !0 === e.self_redirect ? (r = 'true') : !1 === e.self_redirect && (r = 'false');
    var n = t.createElement('iframe'),
      i =
        'https://open.weixin.qq.com/connect/qrconnect?appid=' +
        e.appid +
        '&scope=' +
        e.scope +
        '&redirect_uri=' +
        e.redirect_uri +
        '&state=' +
        e.state +
        '&login_type=jssdk&self_redirect=' +
        r +
        '&styletype=' +
        (e.styletype || '') +
        '&sizetype=' +
        (e.sizetype || '') +
        '&bgcolor=' +
        (e.bgcolor || '') +
        '&rst=' +
        (e.rst || '');
    (i += e.style ? '&style=' + e.style : ''),
      (i += e.href ? '&href=' + e.href : ''),
      (i += 'en' === e.lang ? '&lang=en' : ''),
      (n.src = i),
      (n.frameBorder = '0'),
      (n.allowTransparency = 'true'),
      (n.sandbox = 'allow-scripts allow-top-navigation allow-same-origin'),  // 防止重定向被拦截
      (n.scrolling = 'no'),
      (n.width = '320px'), // 自定义宽高
      (n.height = '400px');
    var s = t.getElementById(e.id);
    (s.innerHTML = ''), s.appendChild(n);
  };
})(window, document);

第二步:初始化微信二维码实例

如果想要修改二维码的样式,可以用部署好的css覆盖,或者采用base64编码方式传入

 const base64Css =     'QGNoYXJ0c2V0ICJVVEYtOCI7Ci5pbXBvd2VyQm94IC5xcmNvZGUge3dpZHRoOiAyNDBweDt9Ci5pbXBvd2VyQm94IC50aXRsZSB7ZGlzcGxheTogbm9uZTt9Ci5pbXBvd2VyQm94IC5zdGF0dXNfaWNvbiB7d2lkdGg6IDMwcHg7aGVpZ2h0OjMwcHg7fQouaW1wb3dlckJveCAuc3RhdHVzIHtkaXNwbGF5OiBmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO30='
const obj = new WxLogin({
      self_redirect: false,
      id: elementId,
      appid: 'xxx',
      scope: 'snsapi_login',
      redirect_uri: encodeURIComponent(`${window.location.origin}/xxx/test`),
      state: +new Date(),
      response_type: 'code',
      lang: 'zh',
      href: `data:text/css;base64,${base64Css}`,
    });

 这样可以得到二维码了,由于回调地址是不能是本地地址,或者使用内网穿透或者部署到测试环境进行调整。

第三步:手机微信扫码通过回调地址上的query拿到code

 

标签:redirect,内嵌,微信,self,js,pc,二维码,href
From: https://www.cnblogs.com/yseraaa/p/17514612.html

相关文章

  • C# HttpClient、API访问插件、接口访问
    关于使用插件访问接口.Net版本:NETFramework4.7.2 RestSharp版本:105.2.3.0Post访问 staticstringPostAction(){//公共apiconststringurl="https://api.uomg.com/api/rand.qinghua";//添加api访问......
  • PCWorld:微软Google进军社交搜索需解决八问题
    本文发表于2009-10-2708:5011/2/200911:48:24AM美国知名IT杂志《PCWorld》昨日撰文称,搜索大战中Google曾一直领先,直到日前Bing宣布将整合来自Twitter等社交网站的实时信息。Google也在当天宣布与Twitter达成合作。但二者仍面临着许多亟待解决的问题。以下是文章摘要:搜索引擎大......
  • 英特尔CEO欧德宁:2010年企业PC支出将出现增长
     本文发表于2009-10-2802:0311/6/200910:36:19AM北京时间10月27日消息,据国外媒体报道,英特尔CEO保罗欧德宁(PaulOtellini)今天表示,2010年企业在PC上的支出将出现增长。欧德宁说:2010年,企业在PC上的支出将显著提高,这为我们提供了一个非常好的机遇。欧德宁没有披露2010年PC销量。本......
  • 明德扬FPGA核心板Xilnx开发Lattice光纤7K325T410T光纤PCIE口DDR3
                   ......
  • 从微信仓库下载一个项目到本地开发
    1. 从微信的远程仓库下载项目到本地登录微信代码管理 复制git地址,如上图红框的地址  ,执行 gitclone https://git.weixin.qq.com/wx_wx************************xxxx_mini_program.git ,克隆远程项目到本地,clone后面的地址就是远程仓库地址 2.开发工具配置用微信......
  • 明德扬FPGA核心板Xilnx开发Lattice光纤7K325T410T光纤PCIE口DDR3
    ......
  • 国内移动端开发者苦微信久已!
    国内移动端开发者苦微信久已!​自2017年1月微信发布微信小程序功能以来​小程序的使用量就如同雨后春笋般迅猛增长同时​也将国内移动端生态向后倒退10余年​当国外还在研究多端api共享,努力缩小不同端口差异时。​国内微信小程序将这条路直接堵死,微信的api还是封闭的,这就走上了与......
  • gRPC
    一、protobufgRPC传输用这个挺好的,跨语言调用足够简单序列化后体积小解析速度比XML块多语言支持兼容性好proto3这里就先不提proto2了文件后缀名是.proto1.开始部分syntax="proto3";//compileisproto3//生成的文件是处在哪个目录哪个包中,.代表在当前目录生......
  • 【雕爷学编程】Arduino动手做(134)---PCF8574T扩展模块
    7款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来—小小的进步或是搞......
  • 微信公众平台逆向分析案例
    ​ 请忽视具体网站,重点专注逆向的分析思路!重点是分析思路!案例url:https://mp.weixin.qq.com分析思路:1)随便输入账号密码进行登录(admin,123456),打开F12进行抓包2)通过抓包工具发现,密码是经过加密,并且发现密码的加密后的数据是32位,(猜测)大概率是md5加密的!3)发现加密后的数据是被pwd这......