微信扫码登录

一、准备工作:

1、注册微信开放平台账号

地址:https://open.weixin.qq.com/

2、申请开发者资质认证

账号中心->开发者资质认证
在这里插入图片描述

3、创建第三方应用

在这里插入图片描述

4、查看应用详情

得到:AppIDAppSecretredirect_uri(回调地址)。

在这里插入图片描述
在这里插入图片描述

二、微信扫码

微信开发官方文档:https://developers.weixin.qq.com/doc/oplatform/Website_App/WeChat_Login/Wechat_Login.html

1、生成二维码,获取code
  • 后端服务需要生成一个带有特定参数的微信登录二维码链接。这个链接通常包含appidredirect_uri以及可能的state等参数,用于标识请求来源和状态。
  • 调用微信API生成二维码ticket,前端展示该二维码让用户扫描。
  • 用户在微信客户端扫描二维码后,微信会引导用户进行授权操作。
  • 授权成功后,微信将跳转至预先设定的redirect_uri,并在URL上附加code参数。

二维码链接:https://open.weixin.qq.com/connect/qrconnect?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect

请求参数

在这里插入图片描述

返回参数
redirect_uri?code=CODE&state=STATE

2、通过code获取access_token和openid

请求地址:https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

请求参数
在这里插入图片描述

返回参数
在这里插入图片描述

三、扫码完成检查(是否绑定微信)

1、数据表关系

在这里插入图片描述

2、绑定检查

① 直接根据查询 [system_social_user]表,判断是否关联本系统

② 【未】关联本系统 User 的三方用户,需要在三方登录完成后,使用账号密码进行「绑定登录」,成功后记录到 [system_social_user_bind ]表中。

【已】关联本系统 User 的三方用户,在三方登录完成后,直接进入系统

3、绑定登录

【未】关联本系统 User 的三方用户需要输入账号密码进行绑定,若账号未注册,需要先去注册账号

进入系统

3、绑定登录

【未】关联本系统 User 的三方用户需要输入账号密码进行绑定,若账号未注册,需要先去注册账号

三方登录页

四、系统设计流程图

1、方案一

在这里插入图片描述

2、方案二

在这里插入图片描述

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
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实现微信扫码登录的基本步骤,通过控制器处理登录和回调接口,以及与微信服务器的交互,可以实现用户使用微信扫码登录系统的功能。当然,具体实现中还需要考虑安全性、数据持久化等问题,以及前端页面的设计和展示等方面的内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值