728x90
반응형
JWT 세팅 밋 헤더에 세팅해보자
Gradle 세팅
implementation 'io.jsonwebtoken:jjwt-api:0.10.5'
implementation 'io.jsonwebtoken:jjwt-impl:0.10.5'
implementation 'io.jsonwebtoken:jjwt-jackson:0.10.5'
사용자 ID로 JWT 생성
public String getEncryptJwt(Member member) {
List<String> roles = new ArrayList<String>();
roles.add("ROLE_MEMBER");
byte[] signingKey = SecurityConstants.JWT_SECRET.getBytes();
String token =Jwts.builder()
.signWith(Keys.hmacShaKeyFor(signingKey), SignatureAlgorithm.HS512)
.setHeaderParam("typ", SecurityConstants.TOKEN_TYPE)
.setIssuer(SecurityConstants.TOKEN_ISSUER)
.setAudience(SecurityConstants.TOKEN_AUDIENCE)
.setSubject(member.getUserId())
.setExpiration(new Date(System.currentTimeMillis() + 864000000))
.claim("rol", roles)
.compact();
log.info("token : " + token);
return token;
}
JWT 복호화
public String getDecryptJwt(String header) {
String token = header.substring(7);
byte[] signingKey = SecurityConstants.JWT_SECRET.getBytes();
Jws<Claims> parsedToken = Jwts.parser()
.setSigningKey(signingKey)
.parseClaimsJws(token);
String userId = parsedToken.getBody().getSubject();
return userId;
}
Controlle 쪽
@GetMapping("/~/get")
@ApiImplicitParams({
@ApiImplicitParam(name="Authorization", value="Bearer Token", required=true, type="header")
})
@ApiOperation(value = "내 정보 ", notes = "가입한 회원정보를 가져오는 API")
@ResponseBody
public Map<String, Object> getMe(@RequestHeader (name="Authorization") String header) throws Exception {
return refundService.me(header);
}
Service 쪽
HttpHeaders httpHeader = new HttpHeaders();
httpHeader.set("Authorization", header.substring(7));
728x90
반응형
'IT > WEB' 카테고리의 다른 글
[파이참] Cannot set up a python SDK. The SDK seems invalid 오류 해결 (PyCharm Community 2022.02) (0) | 2022.11.10 |
---|---|
[API] RESTful API 설계 시 유의해야할 점 (0) | 2022.08.10 |
[WEB] API 간단한 호출 및 JSON 받기 (0) | 2022.08.03 |
[Shell Script] 리눅스 서버에 스프링부트 war 실행 (0) | 2022.07.26 |
[JAVA] lombok @Getter, @Setter 제외하고 따로 getter 만들기 (0) | 2022.07.20 |