back:
일단은 get이 잘이루어지고있는지 하드코딩을 하여 인가코드를 복붙을 해서 돌려보고있습니다.
데이터를 받아와서 db에는 잘 저장되는거 확인하였는데
get으로 db에 저장된 내용을 가지고 오려고 하니 아무것도 뜨지 않습니다. (http://localhost:8090/login/info)
jwt 발급해서 프론트에 헤더를 통해 전달하고 그 jwt 토큰으로 백에서 유저정보를 요청한다고하는데 현재 프론트에서 로그인 성공이 뜨지 않고 Failed to load resource: net::ERR_CONNECTION_REFUSED가 뜨는데 혹시 어떤거에서 문제가 발생하는지 궁금합니다.
package com.example.sociallogin.controller;
import com.example.sociallogin.domain.Member;
import com.example.sociallogin.jwt.JwtProperties;
import com.example.sociallogin.oauth.OauthToken;
import com.example.sociallogin.service.MemberService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpHeaders;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
@RestController // 메소드 리턴타입 객체를 json으로 자동 파싱
public class MemberController {
@Autowired
private MemberService memberService;
// 테스트용 하드코딩된 인가 코드
@GetMapping("/login/oauth2/code/kakao")
public ResponseEntity<String> testLogin() {
// 하드코딩된 인가 코드를 사용
String authorizationCode = "vAivJisd6TmGac41ugtJwWtzWQXeafZQrQ39-GBKXEdAfbRJn3QpiPDxOK5wRawKkneECQorDNIAAAGJ_UsSiA";
// 인가 코드로부터 access token 발급
OauthToken oauthToken = memberService.getAccessToken(authorizationCode);
// 발급 받은 access token으로 카카오 회원 정보 DB 저장 후 JWT 생성
String jwtToken = memberService.SaveMemberAndGetToken(oauthToken.getAccess_token());
HttpHeaders headers = new HttpHeaders();
headers.add(JwtProperties.HEADER_STRING, JwtProperties.TOKEN_PREFIX + jwtToken);
return ResponseEntity.ok().headers(headers).body("success");
}
@GetMapping("/login/info") // jwt 토큰으로 유저정보 요청하기
public ResponseEntity<Object> getCurrentUser(HttpServletRequest request) {
Member member = memberService.getMember(request);
return ResponseEntity.ok().body(member);
}
@GetMapping("/login/name")
public ResponseEntity<String> getMembername(HttpServletRequest request) {
Member member = memberService.getMember(request);
if (member != null) {
String name = member.getNickname();
return ResponseEntity.ok(name);
} else {
return ResponseEntity.notFound().build();
}
}
@GetMapping("/login/email")
public ResponseEntity<String> getMemberemail(HttpServletRequest request) {
Member member = memberService.getMember(request);
if (member != null) {
String useremail = member.getEmail();
return ResponseEntity.ok(useremail);
} else {
return ResponseEntity.notFound().build();
}
}
}
package com.example.sociallogin.controller;
import com.example.sociallogin.domain.Member;
import com.example.sociallogin.jwt.JwtProperties;
import com.example.sociallogin.oauth.OauthToken;
import com.example.sociallogin.service.MemberService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpHeaders;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
@RestController // 메소드 리턴타입 객체를 json으로 자동 파싱
public class MemberController {
@Autowired
private MemberService memberService;
// 테스트용 하드코딩된 인가 코드
@GetMapping("/login/oauth2/code/kakao")
public ResponseEntity<String> testLogin() {
// 하드코딩된 인가 코드를 사용
String authorizationCode = "vAivJisd6TmGac41ugtJwWtzWQXeafZQrQ39-GBKXEdAfbRJn3QpiPDxOK5wRawKkneECQorDNIAAAGJ_UsSiA";
// 인가 코드로부터 access token 발급
OauthToken oauthToken = memberService.getAccessToken(authorizationCode);
// 발급 받은 access token으로 카카오 회원 정보 DB 저장 후 JWT 생성
String jwtToken = memberService.SaveMemberAndGetToken(oauthToken.getAccess_token());
HttpHeaders headers = new HttpHeaders();
headers.add(JwtProperties.HEADER_STRING, JwtProperties.TOKEN_PREFIX + jwtToken);
return ResponseEntity.ok().headers(headers).body("success");
}
@GetMapping("/login/info") // jwt 토큰으로 유저정보 요청하기
public ResponseEntity<Object> getCurrentUser(HttpServletRequest request) {
Member member = memberService.getMember(request);
return ResponseEntity.ok().body(member);
}
@GetMapping("/login/name")
public ResponseEntity<String> getMembername(HttpServletRequest request) {
Member member = memberService.getMember(request);
if (member != null) {
String name = member.getNickname();
return ResponseEntity.ok(name);
} else {
return ResponseEntity.notFound().build();
}
}
@GetMapping("/login/email")
public ResponseEntity<String> getMemberemail(HttpServletRequest request) {
Member member = memberService.getMember(request);
if (member != null) {
String useremail = member.getEmail();
return ResponseEntity.ok(useremail);
} else {
return ResponseEntity.notFound().build();
}
}
}