pc端通过公众平台微信扫码登陆 无需开放平台账号

  • 微信扫码登陆流程
  • 扫码获取用户微信信息
  • 二维码生成

微信扫码登陆流程

1.通过调用微信接口生成二维码
2.前端展示这个二维码,并循环请求后端微信是否回调
3.根据回调结果处理扫码后的操作

扫码获取用户微信信息

扫码登陆的核心是用户扫描二维码后,后台从微信获取用户的openid等信息,然后在回调函数中验证你自己系统中的账号与openid的关联关系 进行登陆等逻辑,因此扫码登陆的第一步是生成这个二维码。

二维码生成

微信提供的生成二维码的接口有2个 :
一个是基于微信开放平台的。在有开发平台账号的情况下可直接使用开发平台: https://open.weixin.qq.com/connect/qrconnect?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=snsapi_login&state=STATE#wechat_redirect;
生成二维码。这需要开发者资质验证。
另一种则是利用微信公众平台 ,生成二维码,进行扫码登陆
生成二维码的url为
https://open.weixin.qq.com/connect/oauth2/authorize?appid="+appId+"&scope=snsapi_userinfo&response_type=code&state="
+state + “&redirect_uri=”+redirect_uri+"#wechat_redirect"
注意这里使用的scope是snsapi_userinfo 或者snsapi_base 而上面的url使用的是snsapi_login
但这个url产生的二维码只能在微信浏览器中展示 这时候可以自己生成二维码

最简单的可以使用 http://qr.topscan.com/api.php?text="+URLEncoder.encode(url, “GBK”);然后前端直接打开返回的链接

这里可以进一步优化 使用微信的长链接转短链接对后面的url进行处理

至此用户扫码二维码并点击确认后,微信服务器会回调你上面设置的redirect_uri,在这里可以获取用户的openid。

最后 使用这种方式还是存在几个问题的

  1. 用户扫码后是提示用户关注公众号 并不是微信提供的登陆确认页面
  2. 展示二维码的页面也不是微信给出的页面 但这个可以根据自己的需求去改。

因此最佳的方案还是根据微信官方的文档,使用开发平台去进行扫码登陆,这也利于后期使用unionId进行管理多个微信的公众号 小程序。

微信扫码登陆 无需开放平台实现方案相关推荐

  1. java实现PC网站实现微信扫码登陆

    近期,开发一个项目要求PC网站可以进行扫码登陆. 1.前期工作 需要先在微信开放平台进行注册(https://open.weixin.qq.com/),并认证一个网站应用. 点击查看按钮,我们需要记录 ...

  2. 第六天 黑马十次方 用户注册、用户登陆掌握js-cookie、微信扫码登陆、nuxt嵌套路由

    学习目标: ** 完成用户注册功能 完成用户登陆功能,掌握js-cookie的使用 完成微信扫码登陆的功能 完成用户中心嵌套布局,掌握nuxt嵌套路由的使用 ** 1 用户注册 1.1 页面构建 创建 ...

  3. 微信扫码登陆功能(保姆级)

    微信官网文档 https://developers.weixin.qq.com/doc/oplatform/Website_App/WeChat_Login/Wechat_Login.html 一.申 ...

  4. 微信扫码登陆/微信公交号 登录PHP 自适应 UnionID统一用户

    <?php namespace Topxia\Component\OAuthClient; /**  * 微信扫码登陆  * Enter description here ...  * @aut ...

  5. 微信扫码登陆在chrome浏览器失败

    浏览器会提示:(新版本的浏览器会提示) Unsafe JavaScript attempt to initiate navigation for frame with URL 'http://www. ...

  6. 微信扫码登陆在chrome浏览器被拦截

    浏览器会提示:(新版本的浏览器会提示) Unsafe JavaScript attempt to initiate navigation for frame with URL 'http://www. ...

  7. Android 微信扫码登陆

    最近项目需求中有一个微信扫码登陆功能,即用手机微信扫码功能扫描终端二维码实现登陆的功能 随即打开微信开发者文档查看,不亏为官方,简洁明了,看得我是一脸懵逼,踩了N多坑,太不友好了,言归正传,希望对一些 ...

  8. php 微信登陆unionid,微信扫码登陆/微信公交号 登录PHP 自适应 UnionID统一用户

    标签:php<?php namespace Topxia\Component\OAuthClient; /** * 微信扫码登陆 * Enter description here ... * @ ...

  9. 账号与微信绑定,微信扫码登陆

    今天完成了pc端微信相关功能的开发,主要是账号与微信绑定,微信扫码登陆. 流程,用户登陆后,在个人中心里有一个和微信绑定界面,用户使用微信扫描后,当前账号和微信账号绑定,可以用来微信扫描登陆. 在登陆 ...

  10. 利用临时二维码实现在电脑浏览器上的微信扫码登陆功能 - EasyWeChat版

    2019独角兽企业重金招聘Python工程师标准>>> 这个方法最开始用在还没有"微信开放平台"的时候,现在也有不少网站在用,简单说就是生成一个临时二维码放到服务 ...

最新文章

  1. datatables php数据,html5 - datatables 加载不出来数据。
  2. Jsp实现在线影院售票系统
  3. servlet文件上传blob_servlet实现从oracle数据库的blob字段中读出文件并显示 | 学步园...
  4. python使用del保留字定义一个函数-函数和代码复用 --Python
  5. 解决oracle主键问题,解决renren-security使用oracle主键问题
  6. STL源代码分析(ch 1)组态2
  7. 自定义PopupWindow弹出后背景灰色状态
  8. 用IStateManager管理状态
  9. bvp解算器是什么_那些学习了编程的中学生,为什么会更可能成功?
  10. 判断一个数字是否存在于某一个数据之中
  11. Platform Builder实践之配置文件
  12. hbase中列簇和列_为什么不建议在hbase中使用过多的列簇
  13. SQL数据库调优之性能监视篇
  14. java 日期年度 35变2035_连接IBM MQ原因码报2035的错误解决办法
  15. java判断线程阻塞_JDK.Future.get() :多线程里获取线程执行结果,异步阻塞问题
  16. 软件测试工作的不足与改善,软件测试工作中对问题的发现和改进
  17. 2009年考研数学一解析pdf
  18. 阿里云发布智慧书店解决方案 联手新华书店总店落地首个“城市书房”
  19. 新增经营情况汇总报表
  20. texture_laws 纹理滤波用于缺陷检测

热门文章

  1. 服务器上的文件误删怎么恢复,云服务器误删文件恢复
  2. java20升水装在3个瓶中代码,1111 给定两个水壶,一个可以装4升水 联合开发网 - pudn.com...
  3. Mac电脑如何快速查找文件
  4. 构建会员运营管理系统 帮助零售企业数字化转型
  5. bcnf分解算法_BCNF范式及其分解方法(对一次Lab作业的总结)
  6. 央视《家有妙招》整理版,值得永远收藏!
  7. redis设置零点过期,网站浏览量
  8. 使用Redis来做浏览量统计
  9. 阿里云吴磊创办yunQ云桥,完成银杏谷资本2000万元天使轮融资
  10. 华为2019数字芯片岗笔试解析(多选部分)