Web SDK v1.6.0 이상
@haechi-labs/[email protected]
@haechi-labs/[email protected]
Unity SDK v1.1 이상
React Native SDK v1.6.이상
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'
});
<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'
);
}
loginWithIdToken
는 Firebase Token을 지원하지 않습니다. Firebase로부터 Google 토큰을 얻은 후 Google 토큰을 넘겨주세요!