ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

login功能在业务层的一个小细节

2022-04-05 16:31:05  阅读:209  来源: 互联网

标签:功能 String user1 用户 细节 cookie user new login





service层的Impl代码:login()

    @Override
    public User login(String username, String password) {

        //1.先判断数据库中有没有该用户名
        User user = userMapper.getUserByName(username);
        if (user==null){
            throw new UserNotFoundException("用户名不存在!");
        }
        //2.判断该用户是否已注销isDelete=1则已经注销
        if (user.getIsDelete()==1){
            throw new UserNotFoundException("该用户已注销!");
        }
        //3.判断用户名密码是否正确
        String password1 = user.getPassword();//先获取数据库中加密过的密码
        String salt = user.getSalt();//从数据库中获取该用户的盐值
        String md5Password = getMD5Password(password, salt);
        //对比用户输入的密码加密后和数据库中的密码是否一样
        if (!md5Password.equals(password1)){
            throw new PasswordNotMatchException("密码输入错误!");
        }

        //当前的用户数据不用全部返回,返回的数据是为了辅助其他也米娜做数据展示的作用。
        //因此只需要返回的一个只包含uid、username、avatar的新user1对象中
        User user1 = new User();
        user1.setUid(user.getUid());
        user1.setUsername(user.getUsername());
        user1.setAvatar(user.getAvatar());//头像信息
        return user1;

    }


这样做的好处是:使得数据的传输体量变小了,传输体量越小性能越高。




另外补充


状态管理:可以将数据保存在cookie或者session中,可以避免重复度很高的数据

session:用户id、用户名

cookie:用户头像


session是保存在服务器中的,更加安全,但是如果在高并发情况下,用户群体多的话,服务器压力很大。(适合用户群体少的后台管理系统)

cookie是保存在浏览器端,京东、淘宝等大型网站都是讲用户信息保存在cookie中,虽然不安全,但是我们可以对信息加密或者将涉及隐私的信息不保存到cookie,不存在服务器压力。(适合用户群体大的互联网系统)


参考链接:https://blog.csdn.net/qq_38775392/article/details/104335738





标签:功能,String,user1,用户,细节,cookie,user,new,login
来源: https://www.cnblogs.com/kakafa/p/16102766.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有