refactor: token返回结构调整,新增刷新token和expire过期时间

This commit is contained in:
haoxr
2022-12-17 23:49:02 +08:00
parent 710c487776
commit 720e8cfadc

View File

@@ -2,7 +2,8 @@ package com.youlai.system.controller;
import com.youlai.system.common.result.Result; import com.youlai.system.common.result.Result;
import com.youlai.system.security.jwt.JwtTokenManager; import com.youlai.system.pojo.dto.TokenResult;
import com.youlai.system.security.JwtTokenManager;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@@ -17,24 +18,27 @@ import org.springframework.web.bind.annotation.*;
@RequestMapping("/api/v1/auth") @RequestMapping("/api/v1/auth")
@RequiredArgsConstructor @RequiredArgsConstructor
public class AuthController { public class AuthController {
private final AuthenticationManager authenticationManager; private final AuthenticationManager authenticationManager;
private final JwtTokenManager jwtTokenManager; private final JwtTokenManager jwtTokenManager;
@ApiOperation(value = "登录",notes = "生成token") @ApiOperation(value = "登录")
@PostMapping("/login") @PostMapping("/login")
public Result login( public Result<TokenResult> login(
@RequestParam String username, @RequestParam String username,
@RequestParam String password @RequestParam String password
) { ) {
UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(username, UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(
password); username.toLowerCase().trim(),
password
);
Authentication authentication = authenticationManager.authenticate(authenticationToken); Authentication authentication = authenticationManager.authenticate(authenticationToken);
SecurityContextHolder.getContext().setAuthentication(authentication); SecurityContextHolder.getContext().setAuthentication(authentication);
// 生成token // 生成token
String token = jwtTokenManager.createToken(authentication); String accessToken = "Bearer " + jwtTokenManager.createToken(authentication);
return Result.success("Bearer " + token); TokenResult tokenResult = TokenResult.builder()
.accessToken(accessToken)
.build();
return Result.success(tokenResult);
} }
@ApiOperation(value = "注销") @ApiOperation(value = "注销")