当前位置: 首页 > news >正文

直播网站开发平台移动端首页

直播网站开发平台,移动端首页,亚当学院网站视频建设教程,百度知道官网入口文章目录 1.登录功能-后端1.思路分析2.完成对用户名和密码的校验1.com/sun/usercenter/service/UserService.java 添加方法2.com/sun/usercenter/service/impl/UserServiceImpl.java 添加方法3.com/sun/usercenter/service/impl/UserServiceImpl.java 新增属性 3.记录用户的登录… 文章目录 1.登录功能-后端1.思路分析2.完成对用户名和密码的校验1.com/sun/usercenter/service/UserService.java 添加方法2.com/sun/usercenter/service/impl/UserServiceImpl.java 添加方法3.com/sun/usercenter/service/impl/UserServiceImpl.java 新增属性 3.记录用户的登录态并配置MyBatisPlus的逻辑删除1.com/sun/usercenter/service/UserService.java 修改doLogin增加参数 request2.com/sun/usercenter/service/impl/UserServiceImpl.java 新增属性3.com/sun/usercenter/service/impl/UserServiceImpl.java 添加代码doLogin 方法添加代码记录用户登录态4.配置MyBatisPlus的逻辑删除1.application.yml 配置2.实体类添加注解 2.接口开发及测试1.com/sun/usercenter/controller/UserController.java 注册和登录接口2.封装登录和注册请求信息的对象1.文件目录2.com/sun/usercenter/model/request/UserLoginRequest.java 用户登录请求体3.com/sun/usercenter/model/request/UserRegisterRequest.java 用户注册请求体 3.单元测试1.用户注册接口测试1.debug模式启动IDEA2.postman测试 2.用户登录接口测试1.com/sun/usercenter/service/impl/UserServiceImpl.java的doLogin最后下断点2.postman测试3.查看session是否有用户登录状态的信息4.放行查看postman的返回结果 3.逻辑删除测试1.在数据库中把刚才进行登录的用户id改成12.重新登录一下 3.用户管理接口1.com/sun/usercenter/controller/UserController.java 添加方法2.user表新增字段role表示用户权限1.新增字段role2.com/sun/usercenter/model/domain/User.java 实体类新增权限字段3.Mapper.xml不用修改因为这个字段本来就与表的字段对应4.com/sun/usercenter/service/impl/UserServiceImpl.java 用户脱敏里面把role字段加进去 3.com/sun/usercenter/contant/UserConstant.java 存放用户常量的接口4.com/sun/usercenter/controller/UserController.java 对两个接口进行权限验证1.添加方法 isAdmin 判断是否为管理员2.修改两个接口的方法 5.application.yml 设置session超时时间6.单元测试1.测试 searchUsers接口1.登录2.表中增加两条测试记录3.进行查询成功查询 2.测试deleteUser接口1.删除id为1的用户2.查看数据库成功进行逻辑删除 3.解决 searchUsers接口返回的用户信息没有脱敏的问题1.com/sun/usercenter/service/UserService.java 添加方法2.com/sun/usercenter/service/impl/UserServiceImpl.java 实现方法并修改逻辑3.com/sun/usercenter/controller/UserController.java 修改searchUsers方法对查询到的用户列表进行脱敏4.再次测试敏感信息变成null了 1.登录功能-后端 1.思路分析 2.完成对用户名和密码的校验 1.com/sun/usercenter/service/UserService.java 添加方法 public Long userRegister(String userAccount, String userPassword, String checkPassword);/*** 用户登录接口* param userAccount 账号* param userPassword 密码* return 成功返回脱敏后的User对象失败返回null*/public User doLogin(String userAccount, String userPassword);2.com/sun/usercenter/service/impl/UserServiceImpl.java 添加方法 Overridepublic User doLogin(String userAccount, String userPassword) {// 1 检验用户名和密码是否合法如果不合法就没必要去数据库查询// 验证非空if (StringUtils.isAnyBlank(userAccount, userPassword)) {return null;}// 账户4到16位不能包含特殊字符if (!userAccount.matches(^[a-zA-Z0-9]{4,16}$)) {return null;}// 密码不小于8位if (userPassword.length() 8) {return null;}// 2 密码加密进行查询String encryptPassword DigestUtils.md5DigestAsHex((SALT userPassword).getBytes());// 编写查询条件QueryWrapperUser userQueryWrapper new QueryWrapper();userQueryWrapper.eq(userPassword, encryptPassword);userQueryWrapper.eq(userAccount, userAccount);// 执行查询User user userMapper.selectOne(userQueryWrapper);// 判断用户是否存在if (user null) {// 输出日志log.info(user login faild, userAccount can not match password);return null;}// 3 记录用户的登录态return user;}3.com/sun/usercenter/service/impl/UserServiceImpl.java 新增属性 3.记录用户的登录态并配置MyBatisPlus的逻辑删除 1.com/sun/usercenter/service/UserService.java 修改doLogin增加参数 request /*** 用户登录接口* param userAccount 账号* param userPassword 密码* return 成功返回脱敏后的User对象失败返回null*/public User doLogin(String userAccount, String userPassword, HttpServletRequest request);2.com/sun/usercenter/service/impl/UserServiceImpl.java 新增属性 3.com/sun/usercenter/service/impl/UserServiceImpl.java 添加代码 doLogin 方法添加代码记录用户登录态 // 3 如果登录成功记录用户的登录态// 首先进行脱敏User cleanUser new User();cleanUser.setId(user.getId());cleanUser.setUsername(user.getUsername());cleanUser.setUserAccount(user.getUserAccount());cleanUser.setAvatarUrl(user.getAvatarUrl());cleanUser.setGender(user.getGender());cleanUser.setPhone(user.getPhone());cleanUser.setEmail(user.getEmail());cleanUser.setUserStatus(user.getUserStatus());cleanUser.setCreateTime(user.getCreateTime());HttpSession session request.getSession();// 然后将脱敏后的用户信息放入session中session.setAttribute(USER_LOGIN_SAVE, cleanUser);return cleanUser;4.配置MyBatisPlus的逻辑删除 1.application.yml 配置 global-config:db-config:logic-delete-field: isDelete # 全局逻辑删除的实体字段名(since 3.3.0,配置后可以忽略不配置步骤2)logic-delete-value: 1 # 逻辑已删除值(默认为 1)logic-not-delete-value: 0 # 逻辑未删除值(默认为 0)2.实体类添加注解 2.接口开发及测试 1.com/sun/usercenter/controller/UserController.java 注册和登录接口 package com.sun.usercenter.controller;import com.sun.usercenter.model.domain.User; import com.sun.usercenter.model.request.UserLoginRequest; import com.sun.usercenter.model.request.UserRegisterRequest; import com.sun.usercenter.service.UserService; import org.apache.commons.lang3.StringUtils; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest;/*** Description:** Author sun* Create 2024/3/21 13:04* Version 1.0*/ RestController // 作为一个Controller注入容器并将返回结果转换为json RequestMapping(/user) // restful风格的请求 public class UserController {Resourceprivate UserService userService; // 注入针对Service接口的bean对象可以调用接口的方法PostMapping(/register)public Long userRegister(RequestBody UserRegisterRequest userRegisterRequest) {// 首先判断数据是否成功封装if (userRegisterRequest null) {return null;}// 对封装的数据进行校验如果有一个是空直接返回nullString userAccount userRegisterRequest.getUserAccount();String userPassword userRegisterRequest.getUserPassword();String checkPassword userRegisterRequest.getCheckPassword();if (StringUtils.isAnyBlank(userAccount, userPassword, checkPassword)) {return null;}// 调用Service层的注册方法如果成功注册则返回注册成功的用户id, 否则返回-1return userService.userRegister(userAccount, userPassword, checkPassword);}PostMapping(/login)public User userRegister(RequestBody UserLoginRequest userLoginRequest, HttpServletRequest request) {// 首先判断数据是否成功封装if (userLoginRequest null) {return null;}// 对封装的数据进行校验如果有一个是空直接返回nullString userAccount userLoginRequest.getUserAccount();String userPassword userLoginRequest.getUserPassword();if (StringUtils.isAnyBlank(userAccount, userPassword)) {return null;}return userService.doLogin(userAccount, userPassword, request);}} 2.封装登录和注册请求信息的对象 1.文件目录 2.com/sun/usercenter/model/request/UserLoginRequest.java 用户登录请求体 package com.sun.usercenter.model.request;import lombok.Data;/*** Description: 用户登录请求体** Author sun* Create 2024/3/21 13:39* Version 1.0*/ Data public class UserLoginRequest {private String userAccount;private String userPassword; } 3.com/sun/usercenter/model/request/UserRegisterRequest.java 用户注册请求体 package com.sun.usercenter.model.request;import lombok.Data;/*** Description: 用户注册请求体** Author sun* Create 2024/3/21 13:26* Version 1.0*/ Data public class UserRegisterRequest {private String userAccount;private String userPassword;private String checkPassword; } 3.单元测试 1.用户注册接口测试 1.debug模式启动IDEA 2.postman测试 2.用户登录接口测试 1.com/sun/usercenter/service/impl/UserServiceImpl.java的doLogin最后下断点 2.postman测试 3.查看session是否有用户登录状态的信息 4.放行查看postman的返回结果 3.逻辑删除测试 1.在数据库中把刚才进行登录的用户id改成1 2.重新登录一下 3.用户管理接口 1.com/sun/usercenter/controller/UserController.java 添加方法 /*** 根据用户名进行模糊查询** param username* return 成功返回信息失败返回null*/GetMapping(/search)public ListUser searchUsers(String username) {QueryWrapperUser userQueryWrapper new QueryWrapper();if (StringUtils.isNotBlank(username)) {userQueryWrapper.like(username, username);}return userService.list(userQueryWrapper);}/*** 根据id进行逻辑删除只要配置了MyBatisPlus的逻辑删除即可进行自动逻辑删除** param id* return 成功返回true失败返回false*/PostMapping(/delete)public boolean deleteUser(RequestBody Long id) {if (id 0) {return false;}return userService.removeById(id); // 这里会自动逻辑删除}2.user表新增字段role表示用户权限 1.新增字段role 2.com/sun/usercenter/model/domain/User.java 实体类新增权限字段 3.Mapper.xml不用修改因为这个字段本来就与表的字段对应 4.com/sun/usercenter/service/impl/UserServiceImpl.java 用户脱敏里面把role字段加进去 3.com/sun/usercenter/contant/UserConstant.java 存放用户常量的接口 package com.sun.usercenter.contant;/*** Description: 用户常量** Author sun* Create 2024/3/21 15:14* Version 1.0*/ public interface UserConstant {/*用户登录状态*/String USER_LOGIN_SAVE userLoginState;// 用户权限/*默认权限*/Integer DEFAULT_ROLE 0;/*管理员权限*/Integer ADMIN_ROLE 1; } 4.com/sun/usercenter/controller/UserController.java 对两个接口进行权限验证 1.添加方法 isAdmin 判断是否为管理员 /*** 判断是否是管理员* param request* return 布尔*/public boolean isAdmin(HttpServletRequest request) {User user (User) request.getSession().getAttribute(USER_LOGIN_SAVE);return user ! null user.getRole() ADMIN_ROLE;}2.修改两个接口的方法 /*** 根据用户名进行模糊查询** param username* return 成功返回信息失败返回null*/GetMapping(/search)public ListUser searchUsers(String username, HttpServletRequest request) {// 仅管理员可查询if (!isAdmin(request)) {return new ArrayList();}QueryWrapperUser userQueryWrapper new QueryWrapper();if (StringUtils.isNotBlank(username)) {userQueryWrapper.like(username, username);}return userService.list(userQueryWrapper);}/*** 根据id进行逻辑删除只要配置了MyBatisPlus的逻辑删除即可进行自动逻辑删除** param id* return 成功返回true失败返回false*/PostMapping(/delete)public boolean deleteUser(long id, HttpServletRequest request) {// 仅管理员可删除if (!isAdmin(request)) {return false;}if (id 0) {return false;}return userService.removeById(id); // 这里会自动逻辑删除} 5.application.yml 设置session超时时间 6.单元测试 1.测试 searchUsers接口 1.登录 2.表中增加两条测试记录 3.进行查询成功查询 2.测试deleteUser接口 1.删除id为1的用户 2.查看数据库成功进行逻辑删除 3.解决 searchUsers接口返回的用户信息没有脱敏的问题 1.com/sun/usercenter/service/UserService.java 添加方法 /*** 进行用户信息脱敏* param user* return*/User getCleanUser(User user);2.com/sun/usercenter/service/impl/UserServiceImpl.java 实现方法并修改逻辑 /*** 对得到的user对象进行用户信息脱敏* param user* return*/Overridepublic User getCleanUser(User user) {User cleanUser new User();cleanUser.setId(user.getId());cleanUser.setUsername(user.getUsername());cleanUser.setUserAccount(user.getUserAccount());cleanUser.setAvatarUrl(user.getAvatarUrl());cleanUser.setGender(user.getGender());cleanUser.setPhone(user.getPhone());cleanUser.setEmail(user.getEmail());cleanUser.setUserStatus(user.getUserStatus());cleanUser.setCreateTime(user.getCreateTime());cleanUser.setRole(user.getRole());return cleanUser;}3.com/sun/usercenter/controller/UserController.java 修改searchUsers方法对查询到的用户列表进行脱敏 /*** 根据用户名进行模糊查询** param username* return 成功返回信息失败返回null*/ GetMapping(/search) public ListUser searchUsers(String username, HttpServletRequest request) {// 仅管理员可查询if (!isAdmin(request)) {return new ArrayList();}QueryWrapperUser userQueryWrapper new QueryWrapper();if (StringUtils.isNotBlank(username)) {userQueryWrapper.like(username, username);}ListUser userList userService.list(userQueryWrapper);// 将查询到的用户数据进行脱敏// 这里的逻辑就是把查询到User对象列表使用user来遍历然后对每个user对象进行脱敏最后组合成一个新的listreturn userList.stream().map(user - {return userService.getCleanUser(user);}).collect(Collectors.toList()); }4.再次测试敏感信息变成null了
http://www.w-s-a.com/news/140628/

相关文章:

  • 出售源码的网站威海住房建设局网站
  • 网站建设补充报价单网站建设 技术指标
  • 做网站费用分摊入什么科目做网络网站需要三证么
  • 房屋备案查询系统官网杭州排名优化软件
  • 网站地图html网络营销的流程和方法
  • 注册好网站以后怎么做wordpress 获取插件目录下
  • 南京做网站dmooo地方网站需要什么手续
  • 网站开发合同有效期omeka wordpress对比
  • 杭州设计网站的公司广州网站改版领军企业
  • 网站备案系统苏州网站设计网站开发公司
  • 怎么样做微网站著名企业vi设计
  • 三分钟做网站网页设计心得体会100字
  • 网站建设支付宝seo建站是什么
  • 常州做网站的 武进学雷锋_做美德少年网站
  • 怎样建网站赚钱贵州seo和网络推广
  • 创建网站的工具站内seo优化
  • 网站特效 站长查询网网站
  • 百度移动端网站网站建设设计思想
  • 青岛建设官方网站南宁制作企业网站
  • 校园网站建设管理工作制度大网站开发费用
  • 做logo赚钱的网站分类网站 模板
  • 网站建设完成报告织梦网站怎么做备份
  • 邯郸市城乡建设管理局网站vimwiki wordpress
  • 如何修改wordpress站名如何制作公司网站
  • 宁波网站建设与推广方案网站有了备案号之后能做什么
  • 汕头手机端建站模板pinterest app下载
  • 网站主机免费宁波网站建设优化诊断
  • 吧网站做软件的软件下载简单的ui界面制作
  • 陕西网站制作公司网页制作与设计代码
  • 做网站行情郑州微信网站开发