4 Star 6 Fork 0

宗长江/重庆java0630_pethome

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
项目5day6.txt 4.67 KB
一键复制 编辑 原始数据 按行查看 历史
dev1 提交于 2022-10-20 08:49 . 权限准备
源码知乎
APPID
wxd853562a0548a7d0
SECRET
4a5d5615f93f24bdba2ba8534642dbb6
回调域
bugtracker.itsource.cn/callback.html
获取code 第一步
https://open.weixin.qq.com/connect/qrconnect?
appid=wxd853562a0548a7d0
&redirect_uri=http://bugtracker.itsource.cn/callback.html
&response_type=code
&scope=snsapi_login
&state=1#wechat_redirect
http://bugtracker.itsource.cn/?code=011vBl000bVAKO1Eqo300VE0t81vBl0X&state=1
获取token 第二步
https://api.weixin.qq.com/sns/oauth2/access_token?
appid=wxd853562a0548a7d0
&secret=4a5d5615f93f24bdba2ba8534642dbb6
&code=011vBl000bVAKO1Eqo300VE0t81vBl0X
&grant_type=authorization_code
返回结果
{"access_token":"61_ZTW7ygytbcstoNYCm5rc61_RR6Yulci0njhOl4eHISbtBLGrH6_yn_i752_ETI1bBZdQAGXH-QHcrZRfCV0VZQBZCb5VumhjItE4FyDIDcM",
"expires_in":7200,
"refresh_token":"61_3XCsyl6VI0hzvJ51mwApX_qybaXsr656f8w2wT7XJ-oL0Hq1V5YDp4HSLKFe7neOyvBKUEk9J6Zj1ytXzFzzhiC_uSxTx3MrVM10zW7ZBSM",
"openid":"oa9wA02yQz_9q1NxZFGaBqib7vzk",
"scope":"snsapi_login",
"unionid":"ovnCWw-UBePh3Sie9pMlDHuTJLuE"}
获取用户信息 第三步
https://api.weixin.qq.com/sns/userinfo?
access_token=61_ZTW7ygytbcstoNYCm5rc61_RR6Yulci0njhOl4eHISbtBLGrH6_yn_i752_ETI1bBZdQAGXH-QHcrZRfCV0VZQBZCb5VumhjItE4FyDIDcM
&openid=oa9wA02yQz_9q1NxZFGaBqib7vzk
{"openid":"oa9wA02yQz_9q1NxZFGaBqib7vzk",
"nickname":"Zhou Jie",
"sex":0,
"language":"",
"city":"",
"province":"",
"country":"",
"headimgurl":"https:\/\/thirdwx.qlogo.cn\/mmopen\/vi_32\/o7Plm7ibljZ00za5m3VbF8xkYeVNToW0TXrCGdV83DoWaoxrAaVRtafWYsIVdl98RIMXTfejuZeEWFibxGrmR3VQ\/132",
"privilege":[],
"unionid":"ovnCWw-UBePh3Sie9pMlDHuTJLuE"}
--- 微信登录的详细流程
前端
/callback.html --- 回调
/binder.html --- 做绑定
后端
获取access_token接口 微信登录接口
binder接口 绑定接口 --微信openid和user表绑定
1.用户进入到登录页面
2.用户点击微信登录 --- 这个按钮 要去设置一个链接 就是获取code的那个链接
3.用户进行扫描 确认
4.进入到回调页面 ---callback.html
callback.html 做什么事情
发送ajax请求
1.去获取地址栏的code
2.将地址栏code解析出来 提交到后台接口 ---- 微信登录接口
/binder.html --- 发送短信验证码进行绑定
手机号 和 验证码
access_token 和 openid 都提交到后台
后端
微信登录接口做什么事情
1.验证code是否为null
2.发送http请求 获取access_token 和 openid
2.1 ---- 有可能微信出问题 (可以不用做)
3.根据 openid 去查询数据库
3.1 有
一 openid 去查询是user===> 我们的user里面有logininfo的id查询 ===> logininfo
二 将 logininfo 返回回去 map来装
三 直接生成token 保存redis 返回数据给前端
3.2 没有
返回false 设置msg = NoBinder --- 利用后置拦截器 跳转页面
access_token 和 openId 也要返回回去
binder接口
1.参数校验 手机号 验证码 access_token openid
2.根据手机号 去查询数据库 只能查询t_user表 不能查询logininfo
2.1 有
一 获取微信用户信
二 直接获取userid设置到wxuser里面去
三 保存t_wxuser
2.2 无
自己去构建一个user对象
然后保存user对象
获取微信用户信
直接获取userid设置到wxuser里面去
保存t_wxuser
3.生成token
4.查询logininfo出来
5.将参数返回
三方登录的流程
1.用户去点击微信登录超链接标签
2.微信开放平台会返回一个微信扫码的页面
3.用户去扫码
4.微信开放平台会返回一个code到你的回调页面
5.我们在回调页面里面 去解析code
6.发送请求到后端code 去获取access_token和openid 获取令牌
7.后端发送http请求 到微信开放平去获取 access_token和openid
8.得到openid去查询我们的数据库 t_wxuser
9.判断当前的openid是否已经绑定了用户
如果 绑定了用户就直接登录 返回token
如果没有绑定 返回一个绑定地址回去 + access_token和openid
10.在绑定页面 得到用户手机号
根据手机号做一个验证
当前手机号是否已经被注册和已经被微信绑定了
抛出异常
11.发送请求到后端 用户的手机和openid + access_token
12.我们还有去根据手机号去查询数据库
看手机号是否存在
发送一个请求去获取微信的用户信息
如果存在
直接绑定当前微信
登录
如果不存在
创一个user
绑定微信
登录
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Java
1
https://gitee.com/zongcj/chongqing-java0630-pethome.git
[email protected]:zongcj/chongqing-java0630-pethome.git
zongcj
chongqing-java0630-pethome
重庆java0630_pethome
master

搜索帮助