이 글의 성격은 무엇인가요?
질문 / 문제 해결
내용을 설명해주세요
상황 요약**
- 토스앱(실서비스) 에서는 미니앱 토스 로그인이 정상 동작합니다.
- 샌드박스 환경에서만 로그인 시 실패하며, BFF에서 토스
generate-tokenAPI를 호출했을 때 아래 응답을 받습니다.
3. 토스 API 응답 (요약)
- HTTP 200 + body 내
resultType: "FAIL" errorCode:OAUTH_ISSUE_TOKEN_ERRORreason:
400 BAD_REQUEST : invalid_grant. 사유: 1. authorization_code 가 이미 사용되었거나 만료됨. 2. 존재하지 않는 authorization_code(혹은 clientId 불일치).
4. 우리 측 구현 요약
- 클라이언트:
appLogin()으로 받은authorizationCode,referrer를 BFF로 전달합니다. 샌드박스일 때는referrer: "sandbox"로 보냅니다. - BFF: 단일
TOSS_API_URL(https://apps-in-toss-api.toss.im), 단일 mTLS 인증서(TOSS_CLIENT_CERT,TOSS_CLIENT_KEY)로
POST /api-partner/v1/apps-in-toss/user/oauth2/generate-token
호출 시 body에authorizationCode,referrer만 넣고 있습니다. (공식 문서 기준으로client_id등은 넣지 않음) - 인가 코드는 매 요청 새로 발급받아 한 번만 사용하고 있으며, referrer·앱 버전·재사용 여부는 확인 완료했습니다.
5. 문의 드리고 싶은 점
- 샌드박스에서 발급된 authorization_code를 실서비스와 동일한 mTLS 인증서·동일한 API URL로
generate-token에 보내도 되는 구조인가요, 아니면 샌드박스 전용 API URL·인증서(또는 별도 앱/ clientId 설정)가 필요한가요? - 에러 사유 중 **“존재하지 않는 authorization_code(혹은 clientId 불일치)”**가 나오는 경우,
- 샌드박스 앱과 실서비스 앱(또는 콘솔에 등록한 앱) 간 clientId/앱 식별이 다르게 되어 있어서 그런 것인지,
- 그렇다면 콘솔에서 확인할 수 있는 clientId 또는 앱–인증서 매핑 안내가 있는지
알려주시면 감사하겠습니다.
- 위와 같은 “실서비스는 성공, 샌드박스만 실패” 사례에서 토스 측에서 권장하는 점검 순서나 설정 확인 방법이 있다면 안내 부탁드립니다.
6. 환경
- WebView 미니앱, SDK 2.0.2
- BFF: Node.js, 단일 API URL + 단일 mTLS로 generate-token / login-me 호출
appName (선택)
btdalarm