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

2023-12-31 12:38

本文主要是介绍5、用户模块接口开发——登录、注销和注册,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

先看一下工程目录
在这里插入图片描述
创建UserController类

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

@Controller
@RequestMapping("/user/")


在这里插入图片描述
1、登录接口:
Controller: 层

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

Service: 层

  //登录@Overridepublic ServerResponse<User> login(String username, String password) {int resultCount= userMapper.checkUsername(username);if(resultCount==0){return ServerResponse.createByErrorMessage("用户名不存在");}//TODO 密码登录MD5String 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)@ResponseBodypublic ServerResponse<String> logout(HttpSession session){session.removeAttribute(Const.CURRENT_USER);return ServerResponse.createBySuccess();}

由于只要删除Session,所以不需要涉及到Service层。
3、注册接口:
Controller : 层

  //注册@RequestMapping(value = "regiest.do",method = RequestMethod.POST)@ResponseBodypublic ServerResponse<String> regiest(User user){return iUserService.regiest(user);}//校验邮箱或用户名不否能用@RequestMapping(value = "check_valid.do",method = RequestMethod.POST)@ResponseBodypublic ServerResponse<String> checkValid(String str,String type){return iUserService.checkValid(str,type);}Service 层//注册方法@Overridepublic 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("校验成功");}

这篇关于5、用户模块接口开发——登录、注销和注册的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/556054

相关文章

最新Spring Security的基于内存用户认证方式

《最新SpringSecurity的基于内存用户认证方式》本文讲解SpringSecurity内存认证配置,适用于开发、测试等场景,通过代码创建用户及权限管理,支持密码加密,虽简单但不持久化,生产环... 目录1. 前言2. 因何选择内存认证?3. 基础配置实战❶ 创建Spring Security配置文件

Spring Security 单点登录与自动登录机制的实现原理

《SpringSecurity单点登录与自动登录机制的实现原理》本文探讨SpringSecurity实现单点登录(SSO)与自动登录机制,涵盖JWT跨系统认证、RememberMe持久化Token... 目录一、核心概念解析1.1 单点登录(SSO)1.2 自动登录(Remember Me)二、代码分析三、

PyQt5 GUI 开发的基础知识

《PyQt5GUI开发的基础知识》Qt是一个跨平台的C++图形用户界面开发框架,支持GUI和非GUI程序开发,本文介绍了使用PyQt5进行界面开发的基础知识,包括创建简单窗口、常用控件、窗口属性设... 目录简介第一个PyQt程序最常用的三个功能模块控件QPushButton(按钮)控件QLable(纯文本

基于Python开发一个图像水印批量添加工具

《基于Python开发一个图像水印批量添加工具》在当今数字化内容爆炸式增长的时代,图像版权保护已成为创作者和企业的核心需求,本方案将详细介绍一个基于PythonPIL库的工业级图像水印解决方案,有需要... 目录一、系统架构设计1.1 整体处理流程1.2 类结构设计(扩展版本)二、核心算法深入解析2.1 自

SpringBoot整合Dubbo+ZK注册失败的坑及解决

《SpringBoot整合Dubbo+ZK注册失败的坑及解决》使用Dubbo框架时,需在公共pom添加依赖,启动类加@EnableDubbo,实现类用@DubboService替代@Service,配... 目录1.先看下公共的pom(maven创建的pom工程)2.启动类上加@EnableDubbo3.实

Ubuntu 24.04启用root图形登录的操作流程

《Ubuntu24.04启用root图形登录的操作流程》Ubuntu默认禁用root账户的图形与SSH登录,这是为了安全,但在某些场景你可能需要直接用root登录GNOME桌面,本文以Ubuntu2... 目录一、前言二、准备工作三、设置 root 密码四、启用图形界面 root 登录1. 修改 GDM 配

nginx 负载均衡配置及如何解决重复登录问题

《nginx负载均衡配置及如何解决重复登录问题》文章详解Nginx源码安装与Docker部署,介绍四层/七层代理区别及负载均衡策略,通过ip_hash解决重复登录问题,对nginx负载均衡配置及如何... 目录一:源码安装:1.配置编译参数2.编译3.编译安装 二,四层代理和七层代理区别1.二者混合使用举例

一文详解SpringBoot中控制器的动态注册与卸载

《一文详解SpringBoot中控制器的动态注册与卸载》在项目开发中,通过动态注册和卸载控制器功能,可以根据业务场景和项目需要实现功能的动态增加、删除,提高系统的灵活性和可扩展性,下面我们就来看看Sp... 目录项目结构1. 创建 Spring Boot 启动类2. 创建一个测试控制器3. 创建动态控制器注

浏览器插件cursor实现自动注册、续杯的详细过程

《浏览器插件cursor实现自动注册、续杯的详细过程》Cursor简易注册助手脚本通过自动化邮箱填写和验证码获取流程,大大简化了Cursor的注册过程,它不仅提高了注册效率,还通过友好的用户界面和详细... 目录前言功能概述使用方法安装脚本使用流程邮箱输入页面验证码页面实战演示技术实现核心功能实现1. 随机

SpringBoot开发中十大常见陷阱深度解析与避坑指南

《SpringBoot开发中十大常见陷阱深度解析与避坑指南》在SpringBoot的开发过程中,即使是经验丰富的开发者也难免会遇到各种棘手的问题,本文将针对SpringBoot开发中十大常见的“坑... 目录引言一、配置总出错?是不是同时用了.properties和.yml?二、换个位置配置就失效?搞清楚加