구글 api로 로그인 처리 에러...

알림
|
X

페이지 정보

작성자 비라코챠 121.♡.94.168
작성일 2024.05.03 09:23
284 조회
0 추천
쓰기

본문

개발 관련 문의인데 조언 해주실 앙님들이 있을지 몰라 글 올려봅니다.

자바사이트 개발중입니다.

다모앙 사이트에도 있지만 소셜 아이디로 로그인하는 기능이 있는데요 

기능을 붙여보려고 개발중입니다.

카카오, 네이버는 그럭저럭 로그인은 되는 것 같은데, 구글은 계속 에러가 발생하네요 ㅠ

레퍼런스 사이트를 참고했는데 구글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 페이지

꼬끼님의 댓글

작성자 꼬끼 (1.♡.148.2)
작성일 05.03 10:10
https://velog.io/@young224/Google-OAuth-기능-구현

한번 참고해보시면 좋을 것 같습니다

꼬끼님의 댓글의 댓글

대댓글 작성자 꼬끼 (1.♡.148.2)
작성일 05.03 10:16
@꼬끼님에게 답글 query string 형태로 아규먼트를 보내고있는건지 확인해보세요

꼬끼님의 댓글의 댓글

대댓글 작성자 꼬끼 (1.♡.148.2)
작성일 05.03 10:20
@꼬끼님에게 답글 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

비라코챠님의 댓글의 댓글

대댓글 작성자 비라코챠 (121.♡.94.168)
작성일 05.03 10:51
@꼬끼님에게 답글 알려주신 참조사이트를보고 체크하고 있는데요
저는 postman은 쓰지 않고 talent API Tester라는 크롬확장프로그램을 쓰는데 post 해보니 token값 리턴 잘 됩니다ㅠㅠ
말씀해주신 것 처럼 googleOAuthRequestParam이 json형태가 아닌 문제로 보입니다
로그 찍어봤는데 보기엔 json형태가 맞는데 시스템이 인식을 못하는건지.. ㅠ
객체를 생성할때 json형태로 만들어줘야 한다는 언급은 참조사이트엔 없었는데 수정을해봐야 할것 같습니다. ㅠ

꼬끼님의 댓글의 댓글

대댓글 작성자 꼬끼 (1.♡.148.2)
작성일 05.03 10:54
@비라코챠님에게 답글 json형태로 보인다고 하셨는데, 파라미터를 json object로 변환을 해주셨을까요?
제가 비라코챠님이 어느정도의 개발수준을 가지고계신분인지 모르고, 작성하신 코드도 일부라ㅎㅎ...

비라코챠님의 댓글의 댓글

대댓글 작성자 비라코챠 (121.♡.94.168)
작성일 05.03 11:26
@꼬끼님에게 답글 아예 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"])

비라코챠님의 댓글의 댓글

대댓글 작성자 비라코챠 (121.♡.94.168)
작성일 05.03 15:04
@꼬끼님에게 답글 jsonObject를
String json = new ObjectMapper().writeValueAsString(googleOAuthRequestParam);
로 만들어서 넘겨봤는데 에러가
....  401 Unauthorized: [no body] 로 나오네요 ㅠㅠ

꼬끼님의 댓글의 댓글

대댓글 작성자 꼬끼 (1.♡.148.2)
작성일 05.03 10:23
@꼬끼님에게 답글 혹시 위 문제가 아니면 참고하고계신 레퍼런스 사이트나 google api dev 링크 하나 남겨주시면 오후에 시간나면 보겠습니다.
(회의중에 남긴거라 듬성듬성 봐서요ㅠㅠ...)

비라코챠님의 댓글의 댓글

대댓글 작성자 비라코챠 (121.♡.94.168)
작성일 05.03 10:51
@꼬끼님에게 답글 제가 참고했던  레퍼런스 사이트 입니다.
https://ecolumbus.tistory.com/169

비라코챠님의 댓글의 댓글

대댓글 작성자 비라코챠 (121.♡.94.168)
작성일 05.03 17:52
@꼬끼님에게 답글 알려주신 참조 사이트가 도움이 되었습니다. 감사합니다.
역시 에러는 오타부터 확인해야 하나 봅니다. ㅠㅠ 
 json으로 형변환해야 했고 오타까지 있었어서 많이 헤멨네요^^;;

꼬끼님의 댓글의 댓글

대댓글 작성자 꼬끼 (1.♡.191.89)
작성일 05.04 00:17
@비라코챠님에게 답글 갑자기 오후에 일이 생겨서 너무너무 바빠졌네요ㅠㅠ 루팡하며 도와드려야지 싶었는데 점검 끝나고 접근권한 차단되어서 이제서야 확인합니다.
잘 해결하신 것 같아서 다행입니다!!
쓰기
홈으로 전체메뉴 마이메뉴 새글/새댓글
전체 검색