商城项目回顾1-登录

这篇博客详细介绍了使用Mybatis-Plus查询用户信息,并基于查询结果验证用户名和密码,然后通过token授权服务进行JWT令牌的获取。如果授权成功,将用户信息存储到session并返回包含用户信息和JWT的响应结果。整个过程涵盖了用户登录的核心步骤。
摘要由CSDN通过智能技术生成

登录逻辑

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,"成功");
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值