SDK 사용 방법

지원 버전

SDK 사용법 예시

import { Face, Network } from '@haechi-labs/face-sdk';

const face = new Face({
  network: Network.GOELRI, 
  apiKey: 'YOUR_DAPP_API_KEY'
});

await face.auth.loginWithIdToken({
	idToken: 'Google 로그인을 통해 얻은 OAuth 토큰',
	sig: 'IdToken에 대한 Signature'
});

API Secret을 이용하여 Signature 만드는 방법

<aside> 💡 API Secret은 Face Wallet 팀에게 발급을 문의주세요. 발급된 API Secret은 관리에 주의해야 하며, 외부로 유출되지 않도록 해야합니다.

</aside>

import forge from 'node-forge';

function createPemFromApiSecret(privateKey: string): string {
  return `-----BEGIN RSA PRIVATE KEY-----\\n${privateKey
    .replace(/-/g, '+') // Base64Url 포맷으로 node-forge으로 가져오기 위해 replace 필요합니다.
    .replace(/_/g, '/')
    .replace(/(\\S{64}(?!$))/g, '$1\\n')}\\n-----END RSA PRIVATE KEY-----\\n`;
}

function createSignatureForIdToken(idToken: string) {
  const messageDigest = forge.md.sha256.create();
  messageDigest.update(idToken, 'utf8');
  const privateKey = forge.pki.privateKeyFromPem(createPemFromApiSecret(prvKey));
  return Buffer.from(forge.util.binary.raw.decode(privateKey.sign(messageDigest))).toString(
    'base64'
  );
}

Firebase를 사용하는 경우에 Google 토큰 얻는 방법