샌드박스 토스 로그인에서 generate-token 호출 시 invalid_grant 오류 발생

이 글의 성격은 무엇인가요?

질문 / 문제 해결

내용을 설명해주세요

안녕하세요. Apps in Toss 샌드박스 환경에서 토스 로그인 연동 테스트 중 문의드립니다.

서비스 정보

  • 테스트 환경: 최신 샌드박스 앱
  • 재현 환경: iOS 시뮬레이터, iPhone 실기기 모두 동일
  • SDK: @apps-in-toss/web-framework 2.0.2
  • 콘솔에서 토스 로그인 설정 완료
  • Scope: user_name, user_phone
  • 약관 등록 완료
  • mTLS 인증서 등록 완료 (재발급 후 교체도 완료)
  • 복호화 키/AAD 수령 및 서버 반영 완료

현재 증상

응답

  • HTTP 400
  • error: invalid_grant

서버 로그

  • POST /auth/toss/login 수신 정상
  • referrer: SANDBOX
  • authorizationCodeLength: 128

[toss-login] exchangeAuthorizationCodeWithToss {
incomingReferrer: ‘SANDBOX’,
referrerCandidates: [ ‘sandbox’ ],
authorizationCodeLength: 128
}

[toss-login] response {
pathname: ‘/api-partner/v1/apps-in-toss/user/oauth2/generate-token’,
statusCode: 200,
raw: ‘{“resultType”:“FAIL”,“success”:null,“error”:{“errorType”:0,“errorCode”:“OAUTH_ISSUE_TOKEN_ERROR”,“reason”:“400 BAD_REQUEST : invalid_grant. 사유: 1. authorization_code 가 이미 사용되었거나 만료됨. 2. 존재하지 않는 authorization_code(혹은 clientId 불일치).”,“data”:{},“title”:null}}’
}

[toss-login] generateTossToken failed {
attemptedReferrer: ‘sandbox’,
tossErrorCode: ‘OAUTH_ISSUE_TOKEN_ERROR’,
canRetry: false
}

Fastify app error

  • path: /auth/toss/login
  • method: POST
  • appErrorCode: TOSS_LOGIN_FAILED
  • appErrorStatusCode: 502
  • appErrorExtra: { tossErrorCode: ‘OAUTH_ISSUE_TOKEN_ERROR’ }

추가 확인 사항

  • 시뮬레이터와 실기기 모두 동일하게 재현됩니다.
  • 로그인 버튼은 한 번만 눌러 테스트했습니다.
  • 미니앱 진입 인증은 정상 동작합니다.

토스 측 서비스 프로비저닝 또는 앱/인증서 바인딩 상태 확인 부탁드립니다.

appName (선택)

pal-ttak

안녕하세요 :slight_smile:
방금 테스트해보니 토큰 발급이 정상적으로 되는 것으로 확인하였습니다 :cry:
클라이언트에서 발급받은 authorizationCode와 백엔드에서 토큰 요청 시 사용한 코드가 동일한지 체크해봐주시겠어요?

추가 확인 결과, 클라이언트에서 appLogin()으로 받은 authorizationCode와 백엔드에서 /generate-token 요청에 사용한 authorizationCode는 동일한 값입니다.

디버그 로그 기준:

  • clientAuthorizationCodeHash: 9922eb0b
  • serverAuthorizationCodeHash: 9922eb0b
  • authorizationCodeHashMatches: true

즉 authorizationCode가 클라이언트 → 백엔드 전달 과정에서 변경되거나 다른 값으로 교체되는 문제는 아닌 것으로 확인했습니다.
그런데도 /generate-token 단계에서 아래 응답이 반복되고 있습니다.

  • errorCode: OAUTH_ISSUE_TOKEN_ERROR
  • reason: 400 BAD_REQUEST : invalid_grant

토스 측에서 서비스 바인딩 또는 clientId / 인증서 매핑 상태를 추가로 확인 부탁드립니다.

샌드박스 로그인 후 앱을 pal-ttak 로 들어가주신 것 맞을까요 ?
토스 로그인 & mTLS인증서도 해당 앱 콘솔에서 받은게 맞을지요?

확인해주셔서 감사합니다, 기존 회원 정보와 토스 로그인 사용자를 새 계정으로 만들려다 충돌하던 로직을, 기존 회원 계정에 토스 계정을 연결하도록 수정해서 해결됐습니다.

1개의 좋아요