登录逻辑
1.采用mybatis-plus框架内置QueryWrapper进行查询
2.对查询结果进行判断(是否已经注册过,账号密码是否正确)
3.进行token授权,判断授权是否成功
4.封装json结果集返回
登陆代码实现
@Override public Result adminLogin(String username, String password, HttpSession session) { //查询 QueryWrapper<UserEntity> q = new QueryWrapper<>(); q.select("id", "username", "password", "role_id", "dept_id", "freeze", "password", "nickname", "face", "email", "insert_time", "type", "sex").eq("username",username).eq("type",0); UserEntity u = userMapper.selectOne(q); //判断账号是否为空,密码是否正确 if(u==null){ return Result.end(500,null,"用户名或密码错误"); }else{ if(new BCryptPasswordEncoder().matches(password, u.getPassword()) == false){ return Result.end(500,null,"用户名或密码错误"); } } System.out.println("返回远程数据"); System.out.println(u); System.out.println("返回远程数据完毕"); //获取token String str = tokenService.getToken(username, password, "password", "client_2", "123456", "client_2"); System.out.println("返回远程数据"); System.out.println(str); System.out.println("返回远程数据完毕"); JSONObject json = JSON.parseObject(str); System.out.println("200" + "200".equals(json.get("code"))); System.out.println("500" + "500".equals(json.get("code"))); System.out.println(json); //判断授权是否成功 if("500".equals(json.get("code"))){ return Result.end(500,json.get("msg"),"授权失败"); } session.setAttribute("userInfo",JSONObject.toJSONString(u)); //账号的创建时间 Date insertTime = u.getInsertTime(); //时间的格式 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); u.setPassword(null); String userJsonString = JSONObject.toJSONString(u); System.out.println(userJsonString); JSONObject userJson = JSONObject.parseObject(userJsonString); //封装结果集 userJson.put("insertTime",sdf.format(insertTime)); JSONObject res = new JSONObject(); res.put("userInfo",userJson); res.put("jwt",json); return Result.end(200,res,"成功"); }