SpringBoot登录、退出、获取用户信息的session处理方案
更新时间:2023年08月21日 09:09:10 作者:全栈技术负责人
这篇文章主要介绍了SpringBoot登录、退出、获取用户信息的session处理,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
SpringBoot登录、退出、获取用户信息的session处理
1、登录方法:login
@PostMapping("/user/login") public ResponseVo<User> login(@Valid @RequestBody UserLoginForm userLoginForm, HttpSession session) { ResponseVo<User> userResponseVo = userService.login(userLoginForm.getUsername(), userLoginForm.getPassword()); //设置Session session.setAttribute(MallConst.CURRENT_USER, userResponseVo.getData()); log.info("/login sessionId={}", session.getId()); return userResponseVo; }
2、获取用户信息:user
//session保存在内存里,改进版:token+redis @GetMapping("/user") public ResponseVo<User> userInfo(HttpSession session) { log.info("/user sessionId={}", session.getId()); User user = (User) session.getAttribute(MallConst.CURRENT_USER); return ResponseVo.success(user); }
3、退出方法:logout
@PostMapping("/user/logout") public ResponseVo logout(HttpSession session) { log.info("/user/logout sessionId={}", session.getId()); session.removeAttribute(MallConst.CURRENT_USER); return ResponseVo.success(); }
session获取用户和退出操作
session获取 [[${session.loginUser}]]
<p><span>下午好!</span><span style="color: #fff21b"> [[${session.loginUser}]]</span> , 欢迎你!</p>
退出:
1.页面
<li><a th:href="@{/logout}" href="login.html">退出系统</a></li>
2.controller控制
package com.cc.springboot.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.thymeleaf.util.StringUtils; import javax.servlet.http.HttpSession; import java.util.Map; @Controller public class LoginController { @PostMapping("/login") public String login(HttpSession session, String username, String password, Map<String,Object>map){ // 判断用户名不为空,且密码为123 if(!StringUtils.isEmpty(username) && "123".equals(password)){ //登录成功 //重定向 redirect: 可以重定向到任何一个请求中(包括其他项目),地址栏改变 // return "main/index"; //在静态资源中查找文件 session.setAttribute("loginUser",username); return "redirect:/main.html"; } // 登陆失败 map.put("msg","用户名或密码错误"); return "main/login"; } // 退出登录 @GetMapping("/logout") public String logout(HttpSession session){ // 1.清空session中的用户信息 session.removeAttribute("loginUser"); // 2.再将session进行注销 session.invalidate(); // 3.返回登录页面 index.html之前的视图映射 return "redirect:/index.html"; } }
到此这篇关于SpringBoot登录、退出、获取用户信息的session处理的文章就介绍到这了,更多相关springboot退出登录内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Caused by: java.lang.ClassNotFoundException: org.objectweb.a
这篇文章主要介绍了Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type异常,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2020-07-07Java后端对接微信支付(小程序、APP、PC端扫码)包含查单退款
微信支付我们主要聚焦于这三种支付方式,其中JSPAI与APP主要与uniapp开发微信小程序与APP对接,本文主要介绍了Java后端对接微信支付(小程序、APP、PC端扫码)包含查单退款,具有一定的参考价值,感兴趣的可以了解一下2021-12-12
最新评论