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

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
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Spring Boot框架是一种轻量级、开箱即用的Java开发框架,它大大简化了企业级应用的开发过程。要实现微信扫码登录,可以使用Spring Boot框架结合微信开放平台的API来实现。以下是实现微信扫码登录的步骤: 1. 注册微信开放平台账号并创建应用,获取AppID和AppSecret。 2. 创建Spring Boot项目并导入相关依赖,如web、httpclient等。 3. 在配置文件application.properties中配置微信开放平台的AppID和AppSecret。 4. 创建一个控制器,用于处理登录相关的请求。 5. 定义一个生成微信扫码登录链接的方法,该方法使用AppID、重定向URI和state等参数生成微信登录链接。 6. 在控制器中定义一个登录请求的接口,该接口返回生成的微信扫码登录链接。 7. 创建一个回调接口,用于处理微信登录成功后的回调请求。 8. 在回调接口中获取微信的授权code,通过code和AppID、AppSecret等参数向微信服务器发送请求,获取用户的唯一标识openid。 9. 将获取到的openid存储到数据库或Session中,表示用户已登录。 10. 在需要验证用户登录状态的接口中,通过openid验证用户是否已登录。 以上是使用Spring Boot实现微信扫码登录的基本步骤,通过控制器处理登录和回调接口,以及与微信服务器的交互,可以实现用户使用微信扫码登录系统的功能。当然,具体实现中还需要考虑安全性、数据持久化等问题,以及前端页面的设计和展示等方面的内容。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值