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 ;

最新文章

  1. JavaScript OOP 之「创建对象」
  2. [Machine Learning &amp; Algorithm] 神经网络基础
  3. ASP.NET MVC自定义验证Authorize Attribute
  4. 使用hessian开发WebService,轻量级,更简单、快捷
  5. 栈与队列:refresh的停车场
  6. iSight集成Adams/View:Adams组件
  7. [电脑常见问题] win8 ie浏览器打不开
  8. 自定义控件TextView
  9. java导出txt文本
  10. 有时间测试dism
  11. freemarker为null处理
  12. 自定义xcode文件模板
  13. C#:求100到200之前所有的质数和
  14. PHP之this和self
  15. STL容器的基本特性和特征
  16. Java9 接口细谈
  17. linux 基本原则和常用命令
  18. web前端(12)—— 页面布局2
  19. node.js 调用第三方服务
  20. Selenium vs TestStudio,Selenium Grid vs F2Test

热门文章

  1. inotify 目录文件变更实时监控
  2. 在oracle中创建管理员密码
  3. BMP位图之1位位图(一)
  4. Apache 首次亚洲在线峰会: Workflow & 数据治理专场
  5. [护网杯 2018]easy_tornado-1|SSTI注入
  6. LuoguP2575 高手过招(博弈论)
  7. Atcoder ZONe Energy Programming Contest C - MAD TEAM(二分)
  8. CCF NOI Online 2021 提高组 赛后心得
  9. 学习ASP.NET Core Blazor编程系列二——第一个Blazor应用程序(上)
  10. PostgreSQL 欺骗优化器之扩展统计信息