문의] 토스 콘솔 연결 끊기 콜백 테스트 "Failed to fetch" 오류 지속 발생

저는 토스 미니앱을 개발 중인 개발자입니다. 토스 로그인 기능 연동 과정에서 “연결 끊기 콜백” 부분에서 문제가 발생하고 있어 문의드립니다. 토스 콘솔(developers-apps-in-toss.toss.im)에서 “테스트 요청하기” 버튼을 클릭할 때마다 “콜백 요청에 실패했어요. 아래 응답 값을 확인해 주세요. Failed to fetch” 오류가 반복적으로 뜹니다. 이미 커뮤니티 포스트와 공식 문서를 참고해 모든 권장 해결책을 적용해봤지만, 여전히 문제가 해결되지 않아 도움을 요청합니다.

문제 상세 설명

  • 오류 메시지: “Failed to fetch” (브라우저 콘솔에서 네트워크 요청 실패로 보임)

  • 발생 시점: 토스 콘솔 > 로그인 > 연결 끊기 콜백 설정 > “테스트 요청하기” 클릭 시

  • 요청 형식: GET 요청으로 추정되며, Authorization: Basic {base64_encoded_credentials} 헤더 포함. userKey나 referrer 파라미터는 콘솔 테스트 시 없음.

  • 환경 정보:

이미 시도한 해결책 (모두 실패)

커뮤니티 포스트(예: “연결 끊기 콜백이 호출되지 않습니다”, “Failed to fetch 오류”)와 공식 문서(developers.toss.im/login/console.html)를 50개 이상 확인하며 아래를 모두 적용했습니다:

  1. CORS 설정 확장: allowedOrigins에 토스 관련 도메인 10개 이상 추가 (https://business.toss.im, https://console.toss.im, https://developers-apps-in-toss.toss.im 등). Origin 없거나 개발 환경 시 ‘*’ 허용.

  2. OPTIONS preflight 명시적 처리: app.options(‘/api/toss/unlink’)로 별도 핸들러 추가, CORS 헤더 설정 후 200 OK 반환.

  3. Basic Auth 개선: OPTIONS 요청과 콘솔 테스트(userKey/referrer 없음) 시 인증 스킵. 콘솔에 Basic Auth 칸 비우기/임의 값(test123) 입력 테스트.

  4. 응답 최적화: 콘솔 테스트 시 JSON 대신 빈 200 OK (res.sendStatus(200)) 반환. (JSON 파싱 실패 방지)

  5. 로그 추가: 모든 요청의 Origin, User-Agent, Auth 헤더 로깅. Cloud Run 로그 확인 결과, 콘솔 테스트 시 요청 자체가 서버에 도달하지 않음.

  6. Cloud Run 설정 확인: 공개 액세스 허용 (allow-unauthenticated), IAM 정책 (allUsers에 invoker 역할 부여), 지역/방화벽 제한 없음.

  7. 대안 테스트: curl/Postman으로 동일 엔드포인트 테스트 시 성공 (200 OK). 실제 토스 앱에서 연결 끊기 시도 시 콜백 호출 확인 (하지만 콘솔 테스트만 실패).

ㅠㅠㅠ 도와주세요..

저도 비슷한 문제를 겪고 있습니다.
[ 앱인토스 로그인 해제 콜백 테스트하기 문제 ]

  1. 앱인토스 콘솔에서 설정한 콜백과 다르게 보내지고 있으며(post로 설정했는데 get으로 요청옴)
  2. Basic Auth 헤더값이 빈 문자열이 옵니다.

안녕하세요.

콘솔 내 해당 이슈 확인되어 수정 후 배포했습니다.

불편드려 죄송합니다.

1개의 좋아요

전에는 테스트 하기 버튼을 눌렀을 때 CORS 에러가 없었는데 CORS 에러가 납니다~!!
혹시 어떤 도메인을 allow origin에 추가해야할까요??
해당 부분이 docs에 명시가 안된 것 같습니다~!!

https://apps-in-toss.toss.im

이 도메인을 추가해야할지 한 번 시도해 봅니다 ~!!**

콘솔에서 직접 테스트 요청을 하는거라 말씀주신대로 앱인토스 콘솔 url을 등록하시면 될 것 같아요.
한번 시도해봐주실 수 있으실까요?! :thinking:
https://apps-in-toss.toss.im

1개의 좋아요

오 저 도메인을 넣으니 테스트 됩니다~!!

1개의 좋아요

오 저 도메인을 넣으니 테스트 됩니다~!!
이제 요청은 수신됩니다~!! 그런데 docs에 나온 것처럼 data가 넘어오지 않습니다.
data가 비어 있습니다~!!
그리고 헤더에 Authorization Basic 이 값도 넘어오지 않는 것 같습니다! 확인 부탁드립니다!!
docs에 나온 예시

–data ‘{“userKey”: 443731103, “referrer”: “UNLINK”}’

확인이 늦었어요.

말씀주신대로 data가 내려가지 않고 있어서 추가해두었습니다. (GET, POST 모두 추가완료)

Authorization 헤더의 경우 request header 값에 잘 포함되는것으로 파악되는데, 혹시 재시도 부탁드려도 될까요?!

감사합니다.

1개의 좋아요

참고로 콘솔을 통해 테스트할 시에는 userKey가 0으로 전달될 예정입니다.
단순 테스트용도이며, 실제 토스앱을 통한 콜백 요청시에는 올바른 userKey가 내려갑니다 !

1개의 좋아요

감사합니다~!
데이터 넘어오는 것 확인했습니다~!
‘Authorization’: ‘Basic TEST’ 이런식으로 평문으로 오는 것을 확인했습니다~!!

추가로 여쭤볼 것이 있습니다.
‘Authorization’: ‘Basic TEST’ 에서
TEST가 Base64로 인코딩 되어서 오는게 아니라 이렇게 평문으로 오나요??
서버측에서 Base64로 디코딩 해서 제가 지정한 TEST가 맞는지 비교하는 로직으로 짰거든요?
실제 앱인토스 실서버에서 전달해주실 때도 저렇게 평문으로 전달해주시는게 맞나요?

서버측에 확인해보니 Base64 인코딩해서 전달드리고 있다고 합니다.

말씀주신것처럼 실제 동작에서는 인코딩된 값을 받아볼 수 있으실거예요.

콘솔쪽 테스트 동작에서도 빠르게 맞춰두겠습니다.

의견주셔서 너무나 감사해요 :person_bowing:

1개의 좋아요