5、用户模块接口开发——登录、注销和注册

先看一下工程目录
这里写图片描述
创建UserController

在主方法上加上这两个注释:

@Controller
@RequestMapping("/user/")

如:
这里写图片描述

1、登录接口:

Controller:

//登录
    @RequestMapping(value = "login.do",method = RequestMethod.POST)
    @ResponseBody
    public ServerResponse<User> login(String username, String password, HttpSession session){
        //service>> mybatis>>dao
        ServerResponse<User> response= iUserService.login(username,password);
        if(response.isSussecc()){
            session.setAttribute(Const.CURRENT_USER,response.getData());
        }
        return response;
    }

Service 层:

  //登录
    @Override
    public ServerResponse<User> login(String username, String password) {
        int resultCount= userMapper.checkUsername(username);

        if(resultCount==0){
            return ServerResponse.createByErrorMessage("用户名不存在");

        }
        //TODO 密码登录MD5

        String md5Password=MD5Util.MD5EncodeUtf8(password);

        User user=userMapper.selectLogin(username,password);
        if(user==null){
            return  ServerResponse.createByErrorMessage("密码错误");
        }
        user.setPassword(StringUtils.EMPTY);
        return ServerResponse.createBySuccessMessage("登录成功",user);
    }

2、注销接口:

Controller : 层

//注销  删除里面的Session即可
    @RequestMapping(value = "logout.do",method = RequestMethod.GET)
    @ResponseBody
    public ServerResponse<String> logout(HttpSession session){
        session.removeAttribute(Const.CURRENT_USER);
        return ServerResponse.createBySuccess();
    }

由于只要删除Session,所以不需要涉及到Service层。

3、注册接口:

Controller : 层

  //注册
    @RequestMapping(value = "regiest.do",method = RequestMethod.POST)
    @ResponseBody
    public ServerResponse<String> regiest(User user){
        return iUserService.regiest(user);
    }

    //校验邮箱或用户名不否能用
    @RequestMapping(value = "check_valid.do",method = RequestMethod.POST)
    @ResponseBody
    public ServerResponse<String> checkValid(String str,String type){
        return iUserService.checkValid(str,type);
    }

Service

    //注册方法
    @Override
    public ServerResponse<String> regiest(User user){

//复用下面的checkValid校验方法
        ServerResponse validRespose=this.checkValid(user.getUsername(),Const.USERNAME);
        if(!validRespose.isSussecc()){
            return validRespose;
        }

        validRespose=this.checkValid(user.getEmail(),Const.EMAIL);
        if(!validRespose.isSussecc()){
            return validRespose;
        }

        user.setRole(Const.Role.ROLE_CUSTOMER);

        //MD5加密
        user.setPassword(MD5Util.MD5EncodeUtf8(user.getPassword()));

        int resultCount=userMapper.insert(user);

        if(resultCount==0){
            return ServerResponse.createByErrorMessage ("服务器内部错误,注册失败");
        }

        return ServerResponse.createBySuccessMessage("注册成功");

    }

    //判断用户名和邮箱是否有效
    public ServerResponse<String> checkValid(String str,String type){
        if(StringUtils.isNotBlank(type)){
            //开始校验
            if(Const.USERNAME.equals(type)){
                int resultCount= userMapper.checkUsername(str);
                if(resultCount>0){
                    return ServerResponse.createByErrorMessage("用户名已存在");
                }

            }
            if(Const.EMAIL.equals(type)){
                 int resultCount=userMapper.checkEmail(str);

                if(resultCount>0){
                    return ServerResponse.createByErrorMessage("email已存在");
                }

            }
        }
        else{
            return ServerResponse.createByErrorMessage("参数错误");
        }
        return ServerResponse.createBySuccessMessage("校验成功");

    }
  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个简单的Java用户登录注册改密注销接口的示例代码: ```java import java.util.HashMap; import java.util.Map; public class UserHandler { private static final Map<String, String> userDatabase = new HashMap<>(); // 模拟用户数据库,存储用户名和密码 public static boolean register(String username, String password) { if (userDatabase.containsKey(username)) { return false; // 用户名已存在,注册失败 } userDatabase.put(username, password); return true; // 注册成功 } public static boolean login(String username, String password) { String expectedPassword = userDatabase.get(username); return expectedPassword != null && expectedPassword.equals(password); } public static boolean changePassword(String username, String oldPassword, String newPassword) { String expectedPassword = userDatabase.get(username); if (expectedPassword != null && expectedPassword.equals(oldPassword)) { userDatabase.put(username, newPassword); return true; // 修改密码成功 } return false; // 修改密码失败 } public static boolean logout(String username) { if (userDatabase.containsKey(username)) { userDatabase.remove(username); return true; // 注销成功 } return false; // 注销失败 } } ``` 在上面的代码,我们使用了一个 `Map` 来模拟用户数据库,其存储了用户用户名和密码。`register` 方法接收用户名和密码作为参数,如果该用户名已存在,则注册失败,否则将该用户用户名和密码存储到用户数据库注册成功。`login` 方法接收用户名和密码作为参数,从用户数据库查找该用户的密码,如果找到了并且该密码与传入的密码一致,就返回 `true` 表示登录成功,否则返回 `false` 表示登录失败。`changePassword` 方法接收用户名、旧密码和新密码作为参数,首先检查旧密码是否正确,如果正确则将该用户的密码修改为新密码,修改成功。`logout` 方法接收用户名作为参数,如果该用户存在于用户数据库,则将该用户用户数据库删除,注销成功。 当然,这只是一个非常简单的示例,实际的用户登录注册改密注销接口可能会更加复杂,例如需要加入验证码、多种登录方式、用户信息存储等等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值