SpringBoot登录、退出、获取用户信息的session处理方案
作者:全栈技术负责人
这篇文章主要介绍了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退出登录内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
您可能感兴趣的文章:
- SpringBoot中获取微信用户信息的方法
- SpringBoot+SpringCloud用户信息微服务传递实现解析
- Springboot+Shiro记录用户登录信息并获取当前登录用户信息的实现代码
- SpringBoot使用Redis的zset统计在线用户信息
- Springboot通过请求头获取当前用户信息方法详细示范
- springboot如何完美通过token获取用户信息
- springboot登录拦截器+ThreadLocal实现用户信息存储的实例代码
- SpringBoot通过参数注解自动获取当前用户信息的方法
- SpringBoot中的ThreadLocal保存请求用户信息的实例demo
- springboot获取当前用户信息的三种方式
