Session存放token/获取token,销毁session
Session存放token/獲取token,銷(xiāo)毀session
這里記錄下session使用.方便學(xué)習(xí)
session使用的是: javax.servlet.http.HttpSession
話不多說(shuō)了.直接上代碼!
java代碼
request.getSession().setAttribute(“token”, token);
這里是放了個(gè)token,也可以直接放user對(duì)象.直接獲取到user
controller類(lèi):
import com.email.demo.bean.User; import io.swagger.annotations.Api; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*;import javax.servlet.http.HttpServletRequest;@Api(value = "用戶登錄session", tags = {"用戶登錄session"}) @Slf4j @Validated @RestController @RequestMapping("/session") public class SessionController {/*** 登錄生成token,存入到session中* @param user* @param request* @return*/@PostMapping("/login")public String login(@RequestBody User user, HttpServletRequest request){String token = generateToken(user);request.getSession().setAttribute("token", token);log.info("成功將token: {}放入到Session中", token);return "登錄成功!";}/*** 生成token* @param user* @return*/private String generateToken(User user){// 隨便組裝一個(gè)token.這里可以根據(jù)自己想要的加密來(lái)生成String token = user.getUserName() + "," + user.getPassword() + "," + user.getCode();log.info("生成的token為: {}", token);return token;}/*** 訪問(wèn)首頁(yè),從session中獲取token* @param request* @return*/@GetMapping("/index")public User index(HttpServletRequest request){// todo 根據(jù)用戶名和密碼去數(shù)據(jù)庫(kù)查詢查一些個(gè)權(quán)限這類(lèi)的,這里就是進(jìn)入業(yè)務(wù)一些個(gè)操作User user = new User();String token = (String) request.getSession().getAttribute("token");log.info("獲取到的token為: {}", token);if(StringUtils.isBlank(token)){log.info("session已銷(xiāo)毀,無(wú)法獲取到!");return new User();}String[] str = token.split(",");String userName = str[0];String password = str[1];String code = str[2];user.setUserName(userName);user.setPassword(password);user.setCode(code);return user;}/*** 退出登錄,銷(xiāo)毀session* @param request* @return*/@GetMapping("/loginOut")public String loginOut(HttpServletRequest request){request.getSession().removeAttribute("token");log.info("銷(xiāo)毀session成功!");return "銷(xiāo)毀session成功!";} }user類(lèi)
import lombok.Data;@Data public class User {/*** 用戶名*/private String userName;/*** 密碼*/private String password;/*** 驗(yàn)證碼*/private String code; }測(cè)試
這里還是使用的swagger測(cè)試.
1.登錄用戶
用戶參數(shù)為:
{
“code”: “1178”,
“password”: “abc123456”,
“userName”: “zhangsan”
}
控制臺(tái)打出結(jié)果:
2.訪問(wèn)首頁(yè),獲取session及token
無(wú)參數(shù).直接請(qǐng)求就好
控制臺(tái)打印結(jié)果:
3.退出登錄,銷(xiāo)毀session
無(wú)參數(shù).直接請(qǐng)求
控制臺(tái)打印:
4.再次請(qǐng)求首頁(yè)
token沒(méi)有了.返回一個(gè)新new的對(duì)象
控制臺(tái)打印:
測(cè)試結(jié)果OK!
歡迎大佬們留言評(píng)論,共同學(xué)習(xí)!!!感謝!!!
===========================
原創(chuàng)文章,轉(zhuǎn)載注明出處!
總結(jié)
以上是生活随笔為你收集整理的Session存放token/获取token,销毁session的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 散列函数设计:除留余数法
- 下一篇: 跳楼撞墙挖地道坐热气球:东德人穿越柏林墙