微信三方登录与注册逻辑处理
微信,作为三方接口的处理逻辑。以下是个人项目处理的逻辑,欢迎大家吐槽!
这边展示项目部分代码
/*** 微信 登录与注册* @param request 请求* @param code 要解析的code,或 已解析的 openid* @param nickName 昵称* @return*/public Map<String,Object> wxLogin(HttpServletRequest request,String code,String nickName){Map<String,Object> map=new HashMap<>();//判断是否存在请求头String key=CookieUtil.getKeyFromTokenCookie(request);User user=null;if (key ==""){ //请求头无值JsCodeDto jsCodeDto= WeChatUtil.getCode(code);//解析 codeThrowException.illegal(jsCodeDto.getOpenid()==null,"code解析失败");//判断openid是否存在(是否注册过)Third third = thirdMapper.queryThirdByOpenId(jsCodeDto.getOpenid());if (third==null){//不存在,做注册注册操作user=new User();user.setOrg(0);user.setIsValid(0);//时间处理Date date=new Date();Calendar rightNow = Calendar.getInstance();rightNow.setTime(date);rightNow.add(Calendar.DAY_OF_YEAR,30);//日期加30天Date addDate=rightNow.getTime();//写入时间user.setExpireDate(addDate);user.setCreateDate(date);user.setUpdateDate(date);ThrowException.illegal(userMapper.insertSelective(user)<1,"添加用户表失败!");//写入thirdthird=new Third();third.setUserId(user.getId());third.setNickname(nickName);third.setOpenid(jsCodeDto.getOpenid());third.setSessionKey(jsCodeDto.getSession_key());int row= thirdMapper.insertSelective(third);if (row<1){userMapper.deleteByPrimaryKey(user.getId());new ParamsException("添加三方表失败");}map.put("uuid",setRedis(user,nickName));//写入redismap.put("openid",jsCodeDto.getOpenid());}else{//存在,做查询操作user=userMapper.selectByPrimaryKey(third.getUserId());map.put("uuid",setRedis(user,nickName));map.put("openid",third.getOpenid());}}else{//有请求头,表明之前注册过Long expire=redisUtil.getExpire(key);//判断是发存在redisif (expire<=0){//时间已经过期Third third = thirdMapper.queryThirdByOpenId(code);//code就是openiduser=userMapper.selectByPrimaryKey(third.getUserId());map.put("uuid",setRedis(user,nickName));map.put("openid",code);}else{//存在map.put("uuid",key);map.put("openid",code);}}return map;}
微信三方登录与注册逻辑处理相关推荐
- 企业微信三方开发:注册企业微信服务商
其他链接 初识微信开发 企业微信三方开发:注册企业微信服务商 企业微信三方开发(一):回调验证及重要参数获取 企业微信三方开发(二):获取access_token 企业微信三方开发(三):网页授权登录 ...
- 兄弟们,就是干 微信三方登录绝对干货
微信第三方登录绝对干货 课程介绍 1. 用户登录-账号登录;(掌握) 2. 三方登录概述;(理解) 3. 三方登录协议-Oauth2.0;(了解) 4. 三方登录选择-微信三方登录;(掌握) ...
- 微信php第三方登录接口,ThinkPHP实现微信三方登录
小插曲就是app做微信三方登录是很久之前,后面又添加了PC的微信三方登陆,而文档上说unionid是同一个账号下不同应用统一的,但是app拿的是uid,导致pc拿的unionid始终对不上,导致浪费了 ...
- 拉起微信三方登录,详细实现步骤
概述:本篇文章详细记录网页做微信登录的功能 用户一次扫微信登录,直接拉取回调页面,绑定手机号,后端处理数据,为用户生成密码,短信告知用户. 用户第二次扫码.直接登录成功. 这次三方登录利用的Sprin ...
- 微信三方登录相关(Swift)
微信登录条件 1.微信开放平台注册并认证成功(每年300RMB) 2.相关应用的微信的APPID和secret 3. 遵循微信代理WXApiDelegate 使用处编写相关登录代码 WXApi.reg ...
- 企业微信三方开发(三):网页授权登录
其他链接 初识微信开发 企业微信三方开发:注册企业微信服务商 企业微信三方开发(一):回调验证及重要参数获取 企业微信三方开发(二):获取access_token 企业微信三方开发(三):网页授权登录 ...
- 企业微信三方开发(五):扫码登录
其他链接 初识微信开发 企业微信三方开发:注册企业微信服务商 企业微信三方开发(一):回调验证及重要参数获取 企业微信三方开发(二):获取access_token 企业微信三方开发(三):网页授权登录 ...
- 企业微信三方开发(四):发送消息
其他链接 初识微信开发 企业微信三方开发:注册企业微信服务商 企业微信三方开发(一):回调验证及重要参数获取 企业微信三方开发(二):获取access_token 企业微信三方开发(三):网页授权登录 ...
- 微信授权登录mock(在没有真实微信账号的情况下测试大量微信账户授权登录的情况)...
场景介绍 对于构建在微信公众号的系统,帐号体系往往使用微信授权登录(如各类微信商城应用系统). 这样操作不仅可以实现静默注册,对用户几乎是无感的,同时也达到了区分用户,获取用户基本信息(头像,昵称等) ...
最新文章
- 轻松应对Java试题,这是一份大数据分析工程师面试指南
- id jquery 拼接_jquery拼接ajax的json和字符串的方法
- webpack中loader加载器配置postCss自动添加CSS兼容前缀
- 【Linux 内核 内存管理】优化内存屏障 ① ( barrier 优化屏障 | 编译器优化 | CPU 执行优化 | 优化屏障源码 barrier 宏 )
- 华为鸿蒙编程:如何显示网络图片
- 机器学习基础——实现基本的决策树
- MIPS衰落 LoongArch崛起
- 学习OpenStack之 (4): Linux 磁盘、分区、挂载、逻辑卷管理 (Logical Volume Manager)
- Python 字符串与二进制串的相互转换
- Python 高级--面向对象
- python图书馆系统借书验证登陆功能
- VS 配置Directx
- 计算机网络分开哪些阶段,物联网的发展可以分为哪四个阶段?
- EXCEL中所有函数的使用
- Redis文档--详解redis
- 典型概率分布(pdf公式和图示)
- 测试场景设计-测试方法论
- 纺织服装产业实现智能制造升级
- c语言sub函数是什么,用$Super$$和$Sub$$对函数进行重定义
- addon游戏_addon_game_mode游戏基本情况设置