欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 维修 > 基于 Spring Boot 瑞吉外卖系统开发(十五)

基于 Spring Boot 瑞吉外卖系统开发(十五)

2025/5/15 15:44:54 来源:https://blog.csdn.net/qq_29385297/article/details/147965418  浏览:    关键词:基于 Spring Boot 瑞吉外卖系统开发(十五)

基于 Spring Boot 瑞吉外卖系统开发(十五)

前台用户登录

在这里插入图片描述
在登录页面输入验证码,单击“登录”按钮,页面会携带输入的手机号和验证码向“/user/login”发起请求。
在这里插入图片描述
在这里插入图片描述

定义UserMapper接口

@Mapper
public interface UserMapper extends BaseMapper<User> {
}

定义UserService接口

public interface UserService extends IService<User> {
}

定义UserService实现类

@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
}

定义UserController类

@RestController
@RequestMapping("/user")
public class UserController {@Autowiredprivate UserService userService;/*** 移动端用户登录* @param map* @param session* @return*/@PostMapping("/login")public R<User> login(@RequestBody Map<String,String> map,HttpSession session){String phone = map.get("phone");String code = map.get("code");//TODO 验证码验证//判断当前手机号对应的用户是否为新用户,如果是新用户就自动完成注册QueryWrapper<User> query = new QueryWrapper<>();query.eq("phone",phone);User user = userService.getOne(query);if(user == null){user = new User();user.setPhone(phone);user.setStatus(1);userService.save(user);}session.setAttribute("loginUser",user);return R.success(user);}/*** 用户退出*/@PostMapping("/loginout")public R<String> logout(HttpServletRequest request){//清理Session中保存的当前登录员工的idrequest.getSession().removeAttribute("loginUser");return R.success("退出成功");}}

定义用户登录拦截器拦截请求

在config包中创建UserLoginInterceptor 拦截器

public class UserLoginInterceptor implements HandlerInterceptor {@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {Object loginUser = request.getSession().getAttribute("loginUser");if  (loginUser == null) {//未登录,返回登录页response.sendRedirect("/front/page/login.html");return  false ; //不放行}return  true ; //放行}}

配置用户登录拦截器

在WebMvcConfig文件中配置拦截器,设置拦截的路径,这里只简单设置了拦截页面。

    @Overridepublic void addInterceptors(InterceptorRegistry registry) {//后台员工登录拦截器registry.addInterceptor(new LoginInterceptor()).addPathPatterns("/backend/page/**","/backend/index.html").excludePathPatterns("/backend/page/login/login.html");//前台用户登录拦截器registry.addInterceptor(new UserLoginInterceptor()).addPathPatterns("/front/page/**","/front/index.html").excludePathPatterns("/front/page/login.html");}

运行测试

输入手机号及该验证码后,单击“登录”按钮,会跳转到用户端首页。
在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词