微信登录(三方登录)

本文详细介绍了微信授权登录的实现过程,包括前端获取code、后台通过code换取token和openid,以及免密登录和非免密登录(微信注册)的步骤。在非免密登录情况下,涉及到手机号绑定、用户信息保存及微信用户信息获取。整个流程涉及到了微信API调用、数据验证和数据库操作。
摘要由CSDN通过智能技术生成

微信注册:
(免密登录)
前提:第三方(前端页面)发起微信授权登录请求,微信用户允许授权第三方应用后,微信会拉起应用或重定向到第三方网站,并且带上授权临时票据code参数;
1.前端获取code传入后台
2.获取用map装code,返回AjaxResult(存有数据)
service免密登录
1.通过map获取code
2.判断code是否为空
3.通过code,appid,secret获取token令牌
(1)通过微信常量工具类获取URL
(2)发送请求给微信平台获取一个json字符串(用HttpClient客户端工具类)
(3)通过工具类(阿里)将json字符串转成json对象
(4)获取token和openid(用户唯一标识)
4通过openid和user_id查询loginInfo表,如果不为空,说明登录过,免密登录
(1)查询对应的loginInfo信息
(2)建用户信息存进redis中
(3)将loginInfo(用户信息)和parm(即为:"?token="+token+"&openid="+openid)存进map,然后map放入Ajaxresult的resultobj中返回
(4)前端发第二次请求
微信登录:(第一次扫描,需要绑定手机号,xwuser表里没有信息。即非免密登录)
1.后台返回数据为空,前端页面根据返回数据情况判断,跳转到绑定页面
2.绑定页面需要手机号和验证码,即也要获取验证码,所以我们需要改造验证码获取后台代码
3.微信绑定手机号,即相当于微信注册,要关联三张表,wxuser,user,loginInfo表。因为有外键关联,保存有顺序
先保存loginInfo,然后user最后wxuser
其中绑定手机号需要判断是否之前注册过,注册过的话,就在loginIngo和user表里有信息
4如何保存wxuser,这就是需要发第三次请求(通过accessToken,openId),获取用户信息用来保存
5.最后将loginInfo登录人信息保存在redis中,返回数据,前端跳转到首页。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值