微信扫码登陆 无需开放平台实现方案
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。
最后 使用这种方式还是存在几个问题的
- 用户扫码后是提示用户关注公众号 并不是微信提供的登陆确认页面
- 展示二维码的页面也不是微信给出的页面 但这个可以根据自己的需求去改。
因此最佳的方案还是根据微信官方的文档,使用开发平台去进行扫码登陆,这也利于后期使用unionId进行管理多个微信的公众号 小程序。
微信扫码登陆 无需开放平台实现方案相关推荐
- java实现PC网站实现微信扫码登陆
近期,开发一个项目要求PC网站可以进行扫码登陆. 1.前期工作 需要先在微信开放平台进行注册(https://open.weixin.qq.com/),并认证一个网站应用. 点击查看按钮,我们需要记录 ...
- 第六天 黑马十次方 用户注册、用户登陆掌握js-cookie、微信扫码登陆、nuxt嵌套路由
学习目标: ** 完成用户注册功能 完成用户登陆功能,掌握js-cookie的使用 完成微信扫码登陆的功能 完成用户中心嵌套布局,掌握nuxt嵌套路由的使用 ** 1 用户注册 1.1 页面构建 创建 ...
- 微信扫码登陆功能(保姆级)
微信官网文档 https://developers.weixin.qq.com/doc/oplatform/Website_App/WeChat_Login/Wechat_Login.html 一.申 ...
- 微信扫码登陆/微信公交号 登录PHP 自适应 UnionID统一用户
<?php namespace Topxia\Component\OAuthClient; /** * 微信扫码登陆 * Enter description here ... * @aut ...
- 微信扫码登陆在chrome浏览器失败
浏览器会提示:(新版本的浏览器会提示) Unsafe JavaScript attempt to initiate navigation for frame with URL 'http://www. ...
- 微信扫码登陆在chrome浏览器被拦截
浏览器会提示:(新版本的浏览器会提示) Unsafe JavaScript attempt to initiate navigation for frame with URL 'http://www. ...
- Android 微信扫码登陆
最近项目需求中有一个微信扫码登陆功能,即用手机微信扫码功能扫描终端二维码实现登陆的功能 随即打开微信开发者文档查看,不亏为官方,简洁明了,看得我是一脸懵逼,踩了N多坑,太不友好了,言归正传,希望对一些 ...
- php 微信登陆unionid,微信扫码登陆/微信公交号 登录PHP 自适应 UnionID统一用户
标签:php<?php namespace Topxia\Component\OAuthClient; /** * 微信扫码登陆 * Enter description here ... * @ ...
- 账号与微信绑定,微信扫码登陆
今天完成了pc端微信相关功能的开发,主要是账号与微信绑定,微信扫码登陆. 流程,用户登陆后,在个人中心里有一个和微信绑定界面,用户使用微信扫描后,当前账号和微信账号绑定,可以用来微信扫描登陆. 在登陆 ...
- 利用临时二维码实现在电脑浏览器上的微信扫码登陆功能 - EasyWeChat版
2019独角兽企业重金招聘Python工程师标准>>> 这个方法最开始用在还没有"微信开放平台"的时候,现在也有不少网站在用,简单说就是生成一个临时二维码放到服务 ...
最新文章
- datatables php数据,html5 - datatables 加载不出来数据。
- Jsp实现在线影院售票系统
- servlet文件上传blob_servlet实现从oracle数据库的blob字段中读出文件并显示 | 学步园...
- python使用del保留字定义一个函数-函数和代码复用 --Python
- 解决oracle主键问题,解决renren-security使用oracle主键问题
- STL源代码分析(ch 1)组态2
- 自定义PopupWindow弹出后背景灰色状态
- 用IStateManager管理状态
- bvp解算器是什么_那些学习了编程的中学生,为什么会更可能成功?
- 判断一个数字是否存在于某一个数据之中
- Platform Builder实践之配置文件
- hbase中列簇和列_为什么不建议在hbase中使用过多的列簇
- SQL数据库调优之性能监视篇
- java 日期年度 35变2035_连接IBM MQ原因码报2035的错误解决办法
- java判断线程阻塞_JDK.Future.get() :多线程里获取线程执行结果,异步阻塞问题
- 软件测试工作的不足与改善,软件测试工作中对问题的发现和改进
- 2009年考研数学一解析pdf
- 阿里云发布智慧书店解决方案 联手新华书店总店落地首个“城市书房”
- 新增经营情况汇总报表
- texture_laws 纹理滤波用于缺陷检测
热门文章
- 服务器上的文件误删怎么恢复,云服务器误删文件恢复
- java20升水装在3个瓶中代码,1111 给定两个水壶,一个可以装4升水 联合开发网 - pudn.com...
- Mac电脑如何快速查找文件
- 构建会员运营管理系统 帮助零售企业数字化转型
- bcnf分解算法_BCNF范式及其分解方法(对一次Lab作业的总结)
- 央视《家有妙招》整理版,值得永远收藏!
- redis设置零点过期,网站浏览量
- 使用Redis来做浏览量统计
- 阿里云吴磊创办yunQ云桥,完成银杏谷资本2000万元天使轮融资
- 华为2019数字芯片岗笔试解析(多选部分)