springboot小程序授权登录获取用户手机号
controller: /*** 授权获取用户手机号** @param mobile* @param type* @return*/@PostMapping("/getPhone")@ApiOperation(value = "授权获取用户手机号", notes = "")public GlobalReponse getPhone(@RequestBody EncrypDataDTO encrypDataDTO) {Long userId = JwtUtil.getCurrentJwtUser().getId();return userService.getPhone(userId, encrypDataDTO);}service接口:GlobalReponse getPhone(Long userId, EncrypDataDTO encrypDataDTO);service实现类:/*** 获取用户手机号* SessionKey 当时是存入表里的,具体根据业务去存取* @param userId* @return*/@Overridepublic GlobalReponse getPhone(Long userId, EncrypDataDTO encrypDataDTO) {try {//去表里查询sessionkeySessionKey sessionKey = sessionKeyDao.createLambdaQuery().andEq(SessionKey::getUserId, userId).single();if (sessionKey == null) {return GlobalReponse.fail("获取信息出错");}AlgorithmParameterSpec ivSpec = new IvParameterSpec(Base64.decodeBase64(encrypDataDTO.getIv()));Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");SecretKeySpec keySpec = new SecretKeySpec(Base64.decodeBase64(sessionKey.getSessionKey()), "AES");cipher.init(Cipher.DECRYPT_MODE, keySpec, ivSpec);String result = new String(cipher.doFinal(Base64.decodeBase64(encrypDataDTO.getEncrypdata())), StandardCharsets.UTF_8);JSONObject jsonObject = JSON.parseObject(result);String phone = (String) jsonObject.get("phoneNumber");//查询该手机号是否存在站长里,如果存在,则绑定上站长,以小程序的user为准,同步后台新建的站长信息,// 站长详情表里的user_id管理也同步成小程序的,删除后台的站长user表//拿手机号去站长详情里查询是否存在该手机号Stationmaster sm = stationmasterDao.createLambdaQuery().andEq(Stationmaster::getPhone, phone).single();//如果存在的话,则查出当前小程序的登录信息,在查出站长详情里的站长信息,将站长详情里的站长信息同步到小程序里,在执行删除if (sm != null) {//当前登录的用户信息User user = userDao.createLambdaQuery().andEq(User::getId, userId).single();//站长详情里的关联的用户的id查出的用户信息User smUser = userDao.createLambdaQuery().andEq(User::getId, sm.getUserId()).single();//同步数据user.setRole(3);user.setPhone(phone);user.setType(1);user.setStatus(0);user.setVipGrade(0);user.setScore(0);user.setTotalScore(0);user.setCreateTime(new Date());user.setUpdateTime(new Date());user.setRecommendId(0L);user.setAuth(-1);user.setUpdateTime(new Date());//执行同步用户信息userDao.updateTemplateById(user);//执行同步店长详情sm.setUserId(user.getId());sm.setUpdateTime(new Date());stationmasterDao.updateTemplateById(sm);//执行删除原用户信息userDao.deleteById(smUser.getId());} else {User user = userDao.createLambdaQuery().andEq(User::getId, userId).single();if (!CheckUtil.checkObjAllFieldsIsNull(user)) {user.setPhone(phone);userDao.updateTemplateById(user);}}//解析解密后的字符串return GlobalReponse.success();} catch (Exception e) {e.printStackTrace();}return GlobalReponse.fail();}用到的参数: @Data @NoArgsConstructor @AllArgsConstructor @EqualsAndHashCode(callSuper = false) public class EncrypDataDTO {private String key;//sessionkeyprivate String iv;//小程序传参private String encrypdata;//小程序传参 }
springboot小程序授权登录获取用户手机号相关推荐
- 微信小程序授权登录获取用户信息详解
今天来说一下微信小程序的授权登录获取用户信息,首先我们看微信提供的小程序开发文档: https://blog.csdn.net/qq_41971087/article/details/82466647 ...
- 微信小程序授权登录——获取用户信息
小程序登录 小程序可以通过微信官方提供的登录能力方便地获取微信提供的用户身份标识,快速建立小程序内的用户体系. 登录流程时序 效果展示: 功能实现: 新建一个login页面 login.js: wx. ...
- 微信小程序授权登录获取用户信息并保存至缓存用于下次登录
1.获取用户信息 wx.getUserProfile(Object object) 获取用户信息.页面产生点击事件(例如 button 上 bindtap 的回调中)后才可调用,每次请求都会弹出授权窗 ...
- 微信小程序授权登录获取用户头像和昵称时得到微信用户,记录getUserInfo转变为getUserProfile的使用修改
首先,在微信官方更新授权操作之前,我们一直使用getUserInfo来获取微信用户的头像和昵称以及openid,这个可以参考我的上一篇博客(使用getUserInfo获取用户头像),但是微信官方弃用g ...
- 微信小程序中如何获取用户手机号授权登录
随着微信小程序的普及,许多应用程序需要用户登录才能提供更好的服务.而获取用户手机号码是验证用户身份和确保账户安全的重要步骤之一.因此,在本文中,我们将介绍如何在微信小程序中实现手机号授权登录. 步骤一 ...
- 微信小程序授权登录+获取手机号
微信小程序授权登录+获取手机号 一.官方文档背景: 小程序登录的链接: 微信小程序获取手机号的链接: 二.微信小程序授权登录+获取手机号 1.简单说明官方文档的操作:先授权登录后拿手机号 2.前端代码 ...
- 微信小程序python解析获取用户手机号_微信小程序获取用户手机号详解
最近在做一款微信小程序,需要获取用户手机号,具体步骤如下: 流程图: 1.首先,客户端调用wx.login,回调数据了包含jscode,用于获取openid(用户唯一标识)和sessionkey(会话 ...
- 微信小程序python解析获取用户手机号_微信小程序如何获取用户手机号
最近在做一款微信小程序,需要获取用户手机号,具体步骤如下: 流程图: 1.首先,客户端调用wx.login,回调数据了包含jscode,用于获取openid(用户唯一标识)和sessionkey(会话 ...
- 基于Thinkphp5+EasyWeChat+fastadmin微信小程序授权登录获取手机号微信公众号网页---联合授权登录
战前准备 1.使用 composer 安装 EasyWeChat $ composer require overtrue/wechat:~4.0 -vvv 或者在composer.json文件renq ...
最新文章
- 【CSS3进阶】酷炫的3D旋转透视
- Exchange2013学习笔记(4)-Ex的重定向
- 机器人学习--Carnegie Mellon University 认知机器人学课程
- 如何开发python sdk调用数据_Python SDK调用示例
- 怎样实现一个非阻塞的超时重试任务队列
- mfa助听器设备能否在android,助听器的蓝牙功能到底有什么用,购买的价格,以及购买时要注意什么等问题...
- 什么是JSONP及其实现原理
- 大陆身份证号码正则验证js脚本
- matlab 双括号_matlab中不同括号的用法
- 图片干扰背景处理,简单易懂
- 今日接手一个项目,服务器重启后,mysql启动失败
- 建站分享:调整WordPress自带标签云参数
- OpenCV 画箭头 python
- SXSSFWorkbook 表格内换行
- 【TP5.1】树状导航栏(无极限分类)
- Ai-Bot RPA自动化框架
- 内网渗透-域横向smbwmin明文hash传递
- CIO应具备的基本素质要求(zt)
- 计算机网络——最全基本概念与网络分层介绍
- DNS地址解析的设置
热门文章
- 还在用内网穿透?手把手教你搭建pptp服务器
- Oracle bitand( )函数简介
- 解决由于druid版本造成的慢sql问题
- python 查询电脑ip的方法
- 3D模型免费下载网站 https://3d.idorobot.com/
- 【Java开源数据库语言】基于SPL如何提高SQL优化效率
- 编程需要用到的软件有哪些?最受欢迎的9个Python开发软件
- python人工智能大数据_人工智能及大数据中的Python
- 用jupyter打开其他盘的文件
- redis05_springboot+mybatis整合redis cluster