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

简介: 先看一下工程目录1.png创建UserController类在主方法上加上这两个注释:@Controller@RequestMapping("/user/")如:2.

先看一下工程目录


img_49248953e3d1ee64e2e8051ed0f1ef33.png
1.png

创建UserController

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

@Controller
@RequestMapping("/user/")

如:


img_3856e92a7a97d0beea38cb853acfe942.png
2.png

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("校验成功");

    }
相关文章
|
7月前
|
存储 前端开发 PHP
构建一个简单的网站,包括用户注册、登录功能
构建一个简单的网站,包括用户注册、登录功能
76 1
|
5月前
|
存储 小程序 关系型数据库
后台交互-个人中心->小程序登录微信登录接口演示,小程序授权登录理论,小程序授权登录代码演示,微信表情包存储问题
后台交互-个人中心->小程序登录微信登录接口演示,小程序授权登录理论,小程序授权登录代码演示,微信表情包存储问题
62 0
|
存储 JSON 前端开发
基于Springboot外卖系统04:后台系统用户登录+登出功能
如果前端与后台接口之间不存在跨域问题,那么推荐使用cookie和session来记录登录状态。如果前端与服务器接口之间存在跨域问题,那么就要使用token的方式来维持登录状态。
189 0
|
JavaScript 前端开发 数据安全/隐私保护
整合登录和注册页面 | 学习笔记
快速学习 整合登录和注册页面
75 0
整合登录和注册页面 | 学习笔记
|
XML 存储 Java
登录功能(接口) | 学习笔记
快速学习登录功能(接口)
224 0
|
数据安全/隐私保护 开发者 微服务
登录功能(接口问题解决) | 学习笔记
快速学习登录功能(接口问题解决)
80 0
登录功能(接口问题解决) | 学习笔记
|
小程序 前端开发
快速注册认证小程序,公众号开发版,授权登录流程代码说明
对于公众号开发,这已经是很老的话题了,之前倒是也做过些许,不过写的都是后端的接口,对于前端操作的一些流程还不是很清楚,比如很重要的一个入口功能,授权的流程。
194 0
快速注册认证小程序,公众号开发版,授权登录流程代码说明
|
数据库 数据安全/隐私保护
SpringMVC实现简单的用户管理系统——用户登录注册、修改密码、注销功能
SpringMVC实现简单的用户管理系统——用户登录注册、修改密码、注销功能
SpringMVC实现简单的用户管理系统——用户登录注册、修改密码、注销功能
|
SQL Java 数据库
用户模块之注册功能完成|学习笔记
快速学习 用户模块之注册功能完成
|
NoSQL 安全 API
多账号统一登陆,怎么实现?
现在几乎大部分的 App 都支持使用多个第三方账号进行登录,如:微信、QQ、微博等,我们把此称为多账号统一登陆。而这些账号的表设计,流程设计至关重要,不然后续扩展性贼差。 本文不提供任何代码实操,但是梳理一下博主根据我司账号模块的设计,提供思路,仅供参考。
703 0
多账号统一登陆,怎么实现?