java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > springboot退出登录

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退出登录内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文