구글 api로 로그인 처리 에러...
알림
|
페이지 정보
작성일
2024.05.03 09:23
본문
개발 관련 문의인데 조언 해주실 앙님들이 있을지 몰라 글 올려봅니다.
자바사이트 개발중입니다.
다모앙 사이트에도 있지만 소셜 아이디로 로그인하는 기능이 있는데요
기능을 붙여보려고 개발중입니다.
카카오, 네이버는 그럭저럭 로그인은 되는 것 같은데, 구글은 계속 에러가 발생하네요 ㅠ
레퍼런스 사이트를 참고했는데 구글API 생성하고 로그인창 떠서 정보는 가져오는데
ResponseEntity<GoogleResponse> resultEntity = restTemplate.postForEntity("https://oauth2.googleapis.com/token",
googleOAuthRequestParam, GoogleResponse.class);
토큰을 받아오는 함수를 호출하면 400 Bad Request라고 에러를 뱉어냅니다 ㅠ
"error": {
"code": 400,
"message": "Invalid JSON payload received. Expected a value.\n\u003cGoogleRequest\u003e\u003cclie\n^",
"status": "INVALID_ARGUMENT"
}
googleOAuthRequestParam의 형태가 잘못되었다는 것 같은데 .. ㅠㅠ
뭐가 잘못된 걸 까요?
구글링해도 INVALID_ARGUMENT 관련 언급은 없네요 ㅠ
댓글 11
/ 1 페이지
꼬끼님의 댓글의 댓글
@꼬끼님에게 답글
googleOAuthRequestParam 에 Invalid JSON payload received. Expected a value.\n\u003cGoogleRequest\u003e\u003cclie\n^
이부분 디코드해보니 json 형태로 안보내고계신 것 같습니다.
엔드포인트 https://oauth2.googleapis.com/token url도 체크해보세요
제가 대강 구글링해보니 중간에 버전정보도 추가된 예시가 많아서요.
ex) https://oauth2.googleapis.com/v4/token
이부분 디코드해보니 json 형태로 안보내고계신 것 같습니다.
엔드포인트 https://oauth2.googleapis.com/token url도 체크해보세요
제가 대강 구글링해보니 중간에 버전정보도 추가된 예시가 많아서요.
ex) https://oauth2.googleapis.com/v4/token
비라코챠님의 댓글의 댓글
@꼬끼님에게 답글
알려주신 참조사이트를보고 체크하고 있는데요
저는 postman은 쓰지 않고 talent API Tester라는 크롬확장프로그램을 쓰는데 post 해보니 token값 리턴 잘 됩니다ㅠㅠ
말씀해주신 것 처럼 googleOAuthRequestParam이 json형태가 아닌 문제로 보입니다
로그 찍어봤는데 보기엔 json형태가 맞는데 시스템이 인식을 못하는건지.. ㅠ
객체를 생성할때 json형태로 만들어줘야 한다는 언급은 참조사이트엔 없었는데 수정을해봐야 할것 같습니다. ㅠ
저는 postman은 쓰지 않고 talent API Tester라는 크롬확장프로그램을 쓰는데 post 해보니 token값 리턴 잘 됩니다ㅠㅠ
말씀해주신 것 처럼 googleOAuthRequestParam이 json형태가 아닌 문제로 보입니다
로그 찍어봤는데 보기엔 json형태가 맞는데 시스템이 인식을 못하는건지.. ㅠ
객체를 생성할때 json형태로 만들어줘야 한다는 언급은 참조사이트엔 없었는데 수정을해봐야 할것 같습니다. ㅠ
꼬끼님의 댓글의 댓글
@비라코챠님에게 답글
json형태로 보인다고 하셨는데, 파라미터를 json object로 변환을 해주셨을까요?
제가 비라코챠님이 어느정도의 개발수준을 가지고계신분인지 모르고, 작성하신 코드도 일부라ㅎㅎ...
제가 비라코챠님이 어느정도의 개발수준을 가지고계신분인지 모르고, 작성하신 코드도 일부라ㅎㅎ...
비라코챠님의 댓글의 댓글
@꼬끼님에게 답글
아예 jsonObject 로 만들었습니다
JsonObject googleOAuthRequest = new JsonObject();
googleOAuthRequest.addProperty("client_id", GOOGLE_CLIENT_ID);
googleOAuthRequest.addProperty("client_secret", GOOGLE_CLIENT_SECRET);
googleOAuthRequest.addProperty("redirect_uri", GOOGLE_REDIRECT_URI);
googleOAuthRequest.addProperty("grant_type", "authorization_code");
googleOAuthRequest.addProperty("code", authCode);
이번엔 다른 에러네요.. ㅠㅠ
.... JsonObject (through reference chain: com.google.gson.JsonObject["asString"])
JsonObject googleOAuthRequest = new JsonObject();
googleOAuthRequest.addProperty("client_id", GOOGLE_CLIENT_ID);
googleOAuthRequest.addProperty("client_secret", GOOGLE_CLIENT_SECRET);
googleOAuthRequest.addProperty("redirect_uri", GOOGLE_REDIRECT_URI);
googleOAuthRequest.addProperty("grant_type", "authorization_code");
googleOAuthRequest.addProperty("code", authCode);
이번엔 다른 에러네요.. ㅠㅠ
.... JsonObject (through reference chain: com.google.gson.JsonObject["asString"])
비라코챠님의 댓글의 댓글
@꼬끼님에게 답글
jsonObject를
String json = new ObjectMapper().writeValueAsString(googleOAuthRequestParam);
로 만들어서 넘겨봤는데 에러가
.... 401 Unauthorized: [no body] 로 나오네요 ㅠㅠ
String json = new ObjectMapper().writeValueAsString(googleOAuthRequestParam);
로 만들어서 넘겨봤는데 에러가
.... 401 Unauthorized: [no body] 로 나오네요 ㅠㅠ
꼬끼님의 댓글의 댓글
@꼬끼님에게 답글
혹시 위 문제가 아니면 참고하고계신 레퍼런스 사이트나 google api dev 링크 하나 남겨주시면 오후에 시간나면 보겠습니다.
(회의중에 남긴거라 듬성듬성 봐서요ㅠㅠ...)
(회의중에 남긴거라 듬성듬성 봐서요ㅠㅠ...)
비라코챠님의 댓글의 댓글
@꼬끼님에게 답글
알려주신 참조 사이트가 도움이 되었습니다. 감사합니다.
역시 에러는 오타부터 확인해야 하나 봅니다. ㅠㅠ
json으로 형변환해야 했고 오타까지 있었어서 많이 헤멨네요^^;;
역시 에러는 오타부터 확인해야 하나 봅니다. ㅠㅠ
json으로 형변환해야 했고 오타까지 있었어서 많이 헤멨네요^^;;
꼬끼님의 댓글의 댓글
@비라코챠님에게 답글
갑자기 오후에 일이 생겨서 너무너무 바빠졌네요ㅠㅠ 루팡하며 도와드려야지 싶었는데 점검 끝나고 접근권한 차단되어서 이제서야 확인합니다.
잘 해결하신 것 같아서 다행입니다!!
잘 해결하신 것 같아서 다행입니다!!
꼬끼님의 댓글
한번 참고해보시면 좋을 것 같습니다