首页 > 编程语言 >Java登录专题-----创建用户(一)

Java登录专题-----创建用户(一)

时间:2022-09-26 13:59:02浏览次数:87  
标签:专题 Java String 用户 zA userinfomodel ----- Z0 passprefix

Java登录专题-----创建用户(一)

我来填坑了

创建用户

入参 应该包括:

用户姓名,用户密码,用户手机号,用户所属机构

用户版本号,角色id

 

出参:

没有

 

数据结构

JavaBean    userInfoModel 用户model实体类

登录方式jwt Json Web Token(JWT )架构

代码逻辑

1.打印入参日志---------线上环境通过日志来进行查看错误

2.检验入参时候为空------抛出异常或者错误

3.创建userInfoModel 用户,将入参转为 该model

4.创建token 该系统采用jwt思想

5.检验token信息,通过token判断所属机构的性质,以及有无权限

6.将用户账号密码,进行去空格

7.检验 账户,密码,邮箱是否符合规范,通过正则表达式进行判断

  1. //校验账户是否符合注册规则
  2. String accountRegex = "^[a-zA-Z0-9_-]{6,16}$";
  1. //校验密码是否符合注册规则
  2. String passwordRegex = "^[a-zA-Z0-9]{6,16}$";
  1. //正则校验邮箱格式是否符合要求
  2. String emailRegex = "^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+$";
  3. //校验手机号格式是否符合要求
  4. String mobileRegex = "^1[0-9]{10}$";

8.检验手机号

与账户是否已经在系统中注册

9.用md5对密码进行加密

  1. String password = userinfomodel.getPassword();
  2. String passprefix = "";//生成密码加密前缀
  3. Random random = new Random();
  4. for (int i = 0; i < 6; i++) {
  5. passprefix += random.nextInt(10);
  6. }
  7. if (EmptyUtils.isNotEmpty(password) && EmptyUtils.isNotEmpty(passprefix)) {
  8. String passwordMD5 = MD5Utils.getMD5String(passprefix + password);
  9. userinfomodel.setPassword(passwordMD5);
  10. userinfomodel.setHidePassword(password);
  11. }
  1. logger.info("展示未加密的密码:" + userinfomodel.getHidePassword());
  2. userinfomodel.setCreateTime(new Date(System.currentTimeMillis()));
  3. userinfomodel.setUpdateTime(new Date(System.currentTimeMillis()));
  4. userinfomodel.setStatus(Constants.COMMON_YES);//新建角色必定有效
  5. userinfomodel.setPasswordPrefix(passprefix);
  6. userinfomodel.setFirstLogin(Constants.COMMON_YES);//新建角色首次登陆标记

 

10.

//为创建的用户分配角色信息 用于为用户分配资源

11.return ;

 

标签:专题,Java,String,用户,zA,userinfomodel,-----,Z0,passprefix
From: https://www.cnblogs.com/DeveloperHan/p/16730589.html

相关文章

  • 微信小程序专题(一)-----微信后台的相关开发
    本人最近在做微信小程序后端的相关开发工作接触到微信小程序目前来讲需要两个条件1.前端通过后台服务器去调用微信平台接口,来获取openid;2.前端必须调用https跟域名......
  • 微信小程序专题(二)-----微信openid的获取
    一,简单来讲就是以下流程 通过get方式获取信息在前端调用wx.login()获取临时登录凭证code之后,将code字符串发送给后端,后端通过auth.code2Session接口获取用户唯一......
  • STS用Maven写一个登录页面 - 用MySQL验证登录用户
    上一章我们已经将MySQL和STS的连接进行了测试,下面我们就用MySQL验证登录用户是否正确。可参考:https://www.cnblogs.com/smart-zihan/p/15041013.html第一步:建立数据库接......
  • Java中的异常
    Java中异常分为运行时异常RuntimeException,和编译时Exception异常。编译时异常必须处理,而运行时异常可以不处理。当trycatchfinally中都有return语句时,finally中的retu......
  • Cannot find module 'html-webpack-plugin'
    Cannotfindmodule'html-webpack-plugin'执行npmrunbuild的时候发现Cannotfindmodule'html-webpack-plugin'原因-S表示添加到生产环境中,npmI-D表示开发环......
  • doecker---制作DockerFile并上传Hub
    一.DockerFile基础知识FROM #基础镜像,一切从这里开始构建MAINTAINER #镜像是谁写的,姓名+邮箱RUN #镜像构建的时候需要运行的命令ADD #添加内容,步骤,tomcat镜像,这个t......
  • mybatis缓存详解--mybatis单独使用
    本文以mybatis-3.5.11版本为基础,对mybatis缓存进行较详细的解析。注意,本文说明的情况,适用于mybatis单独使用的情况,即,不与spring或其他容器框架结合使用的情况。缓存概念......
  • SF2006-ASEMI半塑封快恢复二极管SF2006
    编辑:llSF2006-ASEMI半塑封快恢复二极管SF2006型号:SF2006品牌:ASEMI封装:TO-220AB正向电流:20A反向电压:600V引线数量:3芯片个数:2芯片尺寸:110MIL漏电流:20ua恢复时间:35......
  • Java 编码小技巧
    1、锁与事务获取锁与释放锁不能放在事务里面。先释放锁再提交事务会导致脏数据。2、consumer使用consumer来传递一个lambda表达式publicstaticvoidmain(String[]a......
  • 给组件input/input-number做校验 vue antd
    input校验<a-inputv-model="formState.collectCardNum"placeholder="请输入"oninput="value=value.replace(/[^\w\.......