Caver.js 사용시 403 에러

개발 환경에서는 정상 작동되고, 얼마전까지도 프로덕션 레벨에서 정상 작동된 코드가 최근 Invalid JSON RPC response 403 Forbidden을 리턴합니다.

호출한 명령은 다음과 같습니다.

const caver = new Caver("https://public-node-api.klaytnapi.com/v1/cypress");

const isCorrectCredentials = await caver.validator.validateSignedMessage(
      msg,
      signature,
      user.public_address.toLowerCase()
    );

caver 의존성은 ^1.8.1로 설치되어 있습니다.

안녕하세요, 제공해주신 코드만으로는 원인을 파악하기가 어려운데요

테스트해볼수 있도록 파라미터들에 대한 정보를 함께 제공부탁드립니다.

파라미터라고 한다면 msg, signature, user.public_address_toLowerCase() 말씀이실까요?

해당 코드 윗 부분은 다음과 같습니다.

 const user: User = await this.userQueryRepo.findOne(
      "public_address",
      data.public_address.toLowerCase()
    );
    if (!user) {
      return new PageResObj({}, "not found", true);
    }

    const msg = `SIGN IN TO TOXIC MARKET PLACE #${user.nonce}`;

    const v = "0x" + data.signature.substring(2).substring(128, 130);
    const r = "0x" + data.signature.substring(2).substring(0, 64);
    const s = "0x" + data.signature.substring(2).substring(64, 128);
    const signature = [v, r, s];

개발단에서는 정상적으로 작동되는데 프로덕션 레벨에서만 몇달전부터 문제가 생긴것으로 보입니다. 파라미터로 입력되는 값의 문제점도 딱히 없는 것으로 확인됐습니다. 그래서 API 사용과 관련해서 어떤 규정이 생긴것인지, 아니면 사용량을 초과했다던지 하는 경우에 발생하는 에러인지 어떤 상황에 위의 에러가 발생할 수 있는지 문의드립니다.

https://www.klaytnapi.com/ko/landing/noticeinfo/ 혹시 해당 내용이 관련이 있을까 하여 링크드립니다.

내용을 거의 다 확인해봤는데 저희가 문제가 생긴 시점과 맞아 떨어지는 부분은 없는 것 같네요. 혹시 이곳에서 클레이튼 담당 개발자 분들에게 직접 문의를 하는 방법은 따로 없을까요?

@flexwebio
사용 중이신 KAS 계정의 문제가 아닐까 하는데, 혹시 KAS 계정 이메일 주소 공유 가능하실까요?

메시지로 공유 드렸습니다. 감사합니다!

1개의 좋아요

@flexwebio
안녕하세요,
위에 공유주신 코드 중에 확인해보니 아래와 같이 엔드포인트를 KAS Public Node로 설정하신 것 같은데 맞을까요?
const caver = new Caver("https://public-node-api.klaytnapi.com/v1/cypress");

KAS 공지사항에 공지한 것처럼 KAS Public Node API 서비스는 9/18일부로 종료 되었습니다.
따라서 KAS를 사용하고자 하신다면 퍼블릭이 아닌 Node API를 사용하셔야 합니다.

다른 문의사항 있으시면 말씀 부탁드립니다.
감사합니다.

그렇군요. 그런데 9월 18일이라면 답변 주신 날짜가 9월 6일이니 2022년 9월 18일로 이해했는데, 저희가 문제가 됐던 것은 2023년 6월 경이었습니다. 문제의 원인은 다른 곳에 있는 것 같습니다.