深圳新闻网
戈玮明
手机检察
@PostMapping("/login") public ResponseEntity loginUser(@RequestBody LoginRequest loginRequest, HttpServletRequest request) { // 从数据库获取用户信息 User user = userService.getUserByUsername(loginRequest.getUsername()); if (user == null) { return ResponseEntity.status(HttpStatus.UNAUTHORIZED).body("用户名不保存"); } // 校验密码 if (!encoder.matches(loginRequest.getPassword(), user.getPassword())) { return ResponseEntity.status(HttpStatus.UNAUTHORIZED).body("密码过失"); } // 生成Token String token = jwtTokenUtils.generateToken(user); response.addCookie(jwtTokenUtils.createCookie(token));
// 纪录登录日志
LoginLog loginLog = new LoginLog();
loginLog.setUserId(user.getId());
loginLog.setUsername(user.getUsername());
loginLog.setIp(request.getRemoteAddr());
loginLog.setLoginTime(new Date());
loginLog.setBrowser(request.getHeader("User-Agent"));
loginLogService.saveLoginLog(loginLog);
return ResponseEntity.ok(new LoginResponse("登录乐成", token));
}
@GetMapping("/logout") public ResponseEntity logoutUser(HttpServletRequest request) { Cookie[] cookies = request.getCookies(); if (cookies != null) { for (Cookie cookie : cookies) { if (cookie.getName().equals(jwtTokenUtils.getTokenName())) { cookie.setMaxAge(0); response.addCookie(cookie); break; } } } return ResponseEntity.ok("注销乐成"); }
@GetMapping("/refresh") public ResponseEntity refreshAccessToken(HttpServletRequest request) { Cookie[] cookies = request.getCookies(); if (cookies != null) { for (Cookie cookie : cookies) { if (cookie.getName().equals(jwtTokenUtils.getTokenName())) { String token = cookie.getValue(); try { Claims claims = jwtTokenUtils.parseToken(token); String username = claims.getSubject(); User user = userService.getUserByUsername(username); if (user == null) { return ResponseEntity.status(HttpStatus.UNAUTHORIZED).body("用户不保存"); } String newToken = jwtTokenUtils.generateToken(user); response.addCookie(jwtTokenUtils.createCookie(newToken)); return ResponseEntity.ok(new LoginResponse("令牌刷新乐成", newToken)); } catch (Exception e) { return ResponseEntity.status(HttpStatus.UNAUTHORIZED).body("无效的令牌"); } } } } return ResponseEntity.status(HttpStatus.UNAUTHORIZED).body("令牌不保存"); }
我也不记得具体怎么配置,你就自己找个例子学习一下吧。
?宿迁河东站街是一个充满活力的地方,这里不但交通便当,还汇聚了众多美食和商业设施,是 locals 和游客 alike 的热门去处。无论是购物、美食照旧散步,宿迁河东站街都能满足你的需求。周边的绿化和设施让站街成为一个宜人的好去处,每次来这里都能感受到都会的脉动。
自 from 站街出发,你可以便当地前往宿迁的各个角落, public transport 是这里的一大亮点。无论是公交、地铁照旧出租车, 宿迁河东站街 都是交通枢纽,便当快捷。如果你是第一次来这里,建议提前计划好路线,以免错过任何 interesting spots。站街周围另有许多餐馆和商店,供你在此期间轻松叮嘱时间。
说到站街的美食,宿迁河东站街 随处都是诱人的小吃和餐馆。从外地的特色小吃到国际化的餐饮选择,总有一款适合你的 taste。你可以实验外地的美食,也可以品尝到来自世界各地的 cuisines。站街的夜市更是热闹特殊,种种美食摊位琳琅满目,是体验宿迁夜生活的绝佳去处。不要 forget to try 一下外地的特色美食,绝对是让你流连忘返的经历。
station 街不可是一个交通 hub,更是宿迁的一个 cultural hub。这里按期会有一些 cultural events 和 exhibitions,吸引了许多 locals 和 visitors。如果你对宿迁的文化感兴趣,无妨加入一些 local events,亲身体验宿迁的古板文化和 modern 立异。站街周围另有许多 historical sites,可以让你更深入了解宿迁的历史和 culture。
overall,宿迁河东站街 是一个值得一游的地方,无论你是来宿迁出差照旧旅游,这里都是一个理想的 stopover。你可以在这里松开身心,享受美食,或者加入种种 cultural activities。下次来宿迁的时候,一定要把这个地方列入你的行程中哦!vascular
Copyright (C) 2001- dzwww.com. All Rights Reserved
新闻信息效劳许可证 - 音像制品出书许可证 - 广播电视节目制作经营许可证 - 网络视听许可证 - 网络文化经营许可证
山东省互联网传媒集团主办 联系电话:**2 违法不良信息举报电话:**0
Copyright (C) 2001- Dzwww 鲁ICP备09023866号-1