All Projects → yi-ge → Weixin Login

yi-ge / Weixin Login

完美版本的开放平台无跳转微信登录,将frame数据处理为图片或Base64图片数据返回客户端进行扫码。解决Chrome70中open.weixin.qq.com腾讯SSL证书不被信任的问题,解决Chrome68中frame跨域被拦截的问题。

Programming Languages

javascript
184084 projects - #8 most used programming language

Labels

Projects that are alternatives of or similar to Weixin Login

Min Cli
Min 小程序组件化解决方案
Stars: ✭ 807 (+2023.68%)
Mutual labels:  weixin
Weixinmpsdk
微信全平台 SDK Senparc.Weixin for C#,支持 .NET Framework 及 .NET Core、.NET 6.0。已支持微信公众号、小程序、小游戏、企业号、企业微信、开放平台、微信支付、JSSDK、微信周边等全平台。 WeChat SDK for C#.
Stars: ✭ 7,098 (+18578.95%)
Mutual labels:  weixin
Taro
开放式跨端跨框架解决方案,支持使用 React/Vue/Nerv 等框架来开发微信/京东/百度/支付宝/字节跳动/ QQ 小程序/H5/React Native 等应用。 https://taro.zone/
Stars: ✭ 30,230 (+79452.63%)
Mutual labels:  weixin
Prometheusalert
Prometheus Alert是开源的运维告警中心消息转发系统,支持主流的监控系统Prometheus,Zabbix,日志系统Graylog和数据可视化系统Grafana发出的预警消息,支持钉钉,微信,华为云短信,腾讯云短信,腾讯云电话,阿里云短信,阿里云电话等
Stars: ✭ 822 (+2063.16%)
Mutual labels:  weixin
Weixin Sdk
微信公众平台(订阅号、服务号、企业号、小程序)、微信开放平台和微信支付 Java SDK
Stars: ✭ 933 (+2355.26%)
Mutual labels:  weixin
Weixin Pay
微信支付
Stars: ✭ 863 (+2171.05%)
Mutual labels:  weixin
Jeewx Boot
JAVA版免费开源的微信管家平台。支持微信公众号、小程序、第三方平台等。平台已经实现了公众号基础管理、群发、系统权限、抽奖活动、小程序官网等功能,便于二次开发,可以快速搭建微信应用!
Stars: ✭ 789 (+1976.32%)
Mutual labels:  weixin
Interaction
交互开发教程,包括h5开发、微信开发等。
Stars: ✭ 31 (-18.42%)
Mutual labels:  weixin
Weixin Platform History Article Api
微信公众号历史文章爬取api
Stars: ✭ 27 (-28.95%)
Mutual labels:  weixin
Weixin Sdk
微信公众平台和微信支付Python-SDK
Stars: ✭ 20 (-47.37%)
Mutual labels:  weixin
Koa Weixin Jssdk
koa weixin jssdk middleware
Stars: ✭ 7 (-81.58%)
Mutual labels:  weixin
Taro scaffold
基于 Taro / dva / redux-saga / react 的微信小程序脚手架,同时集成了 sprite 。
Stars: ✭ 24 (-36.84%)
Mutual labels:  weixin
Ios Chat
开源的即时通讯(野火IM)系统
Stars: ✭ 867 (+2181.58%)
Mutual labels:  weixin
Ybpopupmenu
快速集成popupMenu
Stars: ✭ 816 (+2047.37%)
Mutual labels:  weixin
Paylink
Paylink 是基于 .NET Core 、 ASP.NET Core 开发的支付SDK集,它极大简化了API调用及通知的处理流程。
Stars: ✭ 947 (+2392.11%)
Mutual labels:  weixin
Wxopenclub Wxapp Lessons
60 节微信小程序开发视频教程配套源代码
Stars: ✭ 798 (+2000%)
Mutual labels:  weixin
Xiaochengxu demos
小程序优秀项目源码汇总,每个项目都有图有源码,零基础学微信小程序,小程序表格,小程序视频,小程序视频弹幕,小程序仿天猫大转盘抽奖等源码,小程序云开发,小程序发邮件,小程序支付,微信支付,持续更新。。。
Stars: ✭ 855 (+2150%)
Mutual labels:  weixin
Wxparse
wxParse-微信小程序富文本解析自定义组件,支持HTML及markdown解析
Stars: ✭ 7,618 (+19947.37%)
Mutual labels:  weixin
Node Tenpay
微信支付 for nodejs
Stars: ✭ 947 (+2392.11%)
Mutual labels:  weixin
Pro
ECStore Pro - Laravel 微信网店微服务框架
Stars: ✭ 14 (-63.16%)
Mutual labels:  weixin

微信扫码登陆

微信开放平台扫码登陆解析处理工具😊,将frame数据处理为图片或Base64图片数据返回客户端进行扫码。

解决Chrome70中open.weixin.qq.com腾讯SSL证书不被信任的问题(微信官方于2018年8月23日更换了域名证书),解决Chrome68中frame跨域被拦截的问题。

最大特点扫码登录无跳转🤠。

demohttps://weixin.openapi.site/demo

须知

仅适用于微信开放平台-网站应用。ES6,Node.js 9+,standard规范。

为什么不封为NPM库?

这个功能的代码比较简单,https和URL库都是nodejs自带的,直接复制过去用就好了。

使用方法

WeixinLoginClientHandler.mjs文件。
第一步:获取微信UUID;
第二步:根据微信UUID获取二维码图片;
第三步:获取微信服务器返回的Code(详见微信开放平台文档)。

测试方法

在线测试

直接请求https://weixin.openapi.site/img?appid=您的appid&redirect_uri=您在微信开放平台后台设置的授权回调域,获取二维码和UUID。

再次请求https://weixin.openapi.site/check?uuid=上一步得到的UUID,获得登录结果的数据。

您要是懒得部署一套,可以直接使用以上地址。

本地测试

先阅读源码,修改server.mjs里面的配置信息,然后类似以下的方法执行。
node --experimental-modules server.mjs

访问http://localhost:8033/login/weixin/demo即可进行测试。

API

weixinLoginClientHandler.weixinUUID().then(r => console.log(r)) \\ 获取微信uuid(用于获取微信二维码和Ajax轮询结果所需参数)

weixinLoginClientHandler.weixinQRCodeImgURL().then(r => console.log(r)) \\ 可以直接获取二维码图片

weixinLoginClientHandler.weixinQRCodeImgBase64().then(r => console.log(r)) \\ 获取二维码图片的Base64数据(主要用于Chrome70中腾讯所使用的赛门铁克证书失效的情况)

weixinLoginClientHandler.getCode(uuid, params.last).then(r => console.log(r)) \\ 获取微信服务器返回的Code(第一个连接是长连接,当用户处于“扫描成功,请在微信中点击确认即可登录”状态时可能会变为轮询,这主要由腾讯服务器控制)

Example

import WeixinLoginClientHandler from './WeixinLoginClientHandler'

const weixinLoginClientHandler = new WeixinLoginClientHandler({
  appid: 'wx827225356b689e24',
  redirect_uri: 'https://qq.jd.com/',
  state: ''
})

weixinLoginClientHandler.weixinUUID().then(r => {
  console.log(r)
  weixinLoginClientHandler.weixinQRCodeImgBase64(r).then(r => console.log(r))
})

weixinLoginClientHandler.weixinQRCodeImgURL().then(r => console.log(r))

小提示

  1. 如果您看不懂此项目文件的代码内容,请弃用此方案(😂这可能说明您并不需要使用该方案,这个方案可能只适合少部分应用)。
  2. 使用此方法,无需经由服务器端跳转,可以直接获得code。如果是Electron环境,可以直接在渲染进程请求。
  3. 建议为该功能单独部署,可在您所有项目中使用同一个接口。PHP版本方便部署到虚拟主机等免维护环境,简单方便。
  4. 该文件使用原生Node.js方法,ES6写法,直接复制WeixinLoginClientHandler.mjs文件到你的ES6项目并改后缀为js,然后可自由发挥。
  5. 理论上你可以模拟任何网站的二维码,但是没有私钥就算拿到code也没有用。
  6. Node.js v10.5+使用PM2配置node_args: '--experimental-modules'会有报错,需要npm i esm,然后配置node_args: '-r esm'

其它语言版本

PHP

相关博文

无刷新微信扫码登陆解决方案

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].