오늘은 이전의 메소드들을 통해 만든 데이터들을 어떻게 처리하는지 알아보려고 합니다. 먼저 아래 플로우를 봐주세요.

webuahtn.guide 문서와 위의 플로우를 함께 보시면서 데이터를 만들어가시면 더욱 좋을 것 같습니다. FLOW는 대략적으로 위와 같고 마지막에 authData는 디테일하게 적지 않았는데 Spec문서에 좋은 이미지가 있어서 첨부합니다. ( Figure중 하나의 이미지입니다 )

이제 간단하게 설명해보겠습니다. navigator.credential.create()함수를 통해 얻은 값들 중 clientDataJson과 attestationObject는 각각 다음과 같은 데이터를 제공합니다.
clientDataJson
- challenge ( 처음 publicKeyCredentialCreationOption을 생성할때 전송한 challenge값과 같은지 체크합니다 )
- origin ( 현재 서버의 origin과 같은지 확인합니다 )
- type
attestationObject.authData
- RP ID Hash
- FLAGS
- COUNTER
- AAGUID
- credentialIdLength
- credential ID
- credential public key
- EXTENSIONS
attestationObject의 데이터들은 이후 인증에서 필요하기 때문에 데이터베이스에 저장합니다. 또한 디코딩, 파싱 코드는 여기에서는 다음과 같이 했습니다.

DB에 저장하는 스키마는 GITHUB에 있으니 참고해주시길 바랍니다. 다음은 인증 FLOW를 함께 따라가보겠습니다 ㅎㅎ