Java登录专题-----创建用户(一)
Java登录专题-----创建用户(一)
我来填坑了
创建用户
入参 应该包括:
用户姓名,用户密码,用户手机号,用户所属机构
用户版本号,角色id
出参:
没有
数据结构:
JavaBean userInfoModel 用户model实体类
登录方式jwt Json Web Token(JWT )架构
代码逻辑
1.打印入参日志---------线上环境通过日志来进行查看错误
2.检验入参时候为空------抛出异常或者错误
3.创建userInfoModel 用户,将入参转为 该model
4.创建token 该系统采用jwt思想
5.检验token信息,通过token判断所属机构的性质,以及有无权限
6.将用户账号密码,进行去空格
7.检验 账户,密码,邮箱是否符合规范,通过正则表达式进行判断
- //校验账户是否符合注册规则
- String accountRegex = "^[a-zA-Z0-9_-]{6,16}$";
- //校验密码是否符合注册规则
- String passwordRegex = "^[a-zA-Z0-9]{6,16}$";
- //正则校验邮箱格式是否符合要求
- String emailRegex = "^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+$";
- //校验手机号格式是否符合要求
- String mobileRegex = "^1[0-9]{10}$";
8.检验手机号
与账户是否已经在系统中注册
9.用md5对密码进行加密
- String password = userinfomodel.getPassword();
- String passprefix = "";//生成密码加密前缀
- Random random = new Random();
- for (int i = 0; i < 6; i++) {
- passprefix += random.nextInt(10);
- }
- if (EmptyUtils.isNotEmpty(password) && EmptyUtils.isNotEmpty(passprefix)) {
- String passwordMD5 = MD5Utils.getMD5String(passprefix + password);
- userinfomodel.setPassword(passwordMD5);
- userinfomodel.setHidePassword(password);
- }
- logger.info("展示未加密的密码:" + userinfomodel.getHidePassword());
- userinfomodel.setCreateTime(new Date(System.currentTimeMillis()));
- userinfomodel.setUpdateTime(new Date(System.currentTimeMillis()));
- userinfomodel.setStatus(Constants.COMMON_YES);//新建角色必定有效
- userinfomodel.setPasswordPrefix(passprefix);
- userinfomodel.setFirstLogin(Constants.COMMON_YES);//新建角色首次登陆标记
10.
//为创建的用户分配角色信息 用于为用户分配资源
11.return ;