Spring Boot에서 Open DID 기반으로 회원가입/로그인을 구현하기 위해서는 ID/PW 방식이 아닌 DID + Verifiable Credential(VC) 기반의 인증 흐름을 따라야 함
[사용자 eWallet] → [Spring Boot 서버]
1. DID 생성 및 VC 발급 ← (외부 Issuer)
2. VC 제출 (로그인/회원가입 요청 시)
3. Spring Boot 서버에서 VC 검증
4. 검증 성공 시 세션/토큰 발급
User side(FE)
POST/singup 요청에 VC를 JSON 형태로 포함POST /signup
{
"did": "did:ethr:0xabc123...",
"vc": { ... } // W3C 표준 VC JSON
}
Server side(BE)
// VC 검증 → did 문서 조회 → 서명자 공개키 일치 여부 확인
boolean isVerified = vcVerifier.verify(vcJson);
if (isVerified) {
// 회원 등록
userRepository.save(new User(did, name, ...));
}
POST /login
{
"vp": {
"presentation": {...},
"proof": {...}
}
}
String did = extractDidFromVp(vpJson);
User user = userRepository.findByDid(did);
[DApp] → [Spring Boot API] → [Node.js VC/DID 검증 서버] → [DID Resolver] → [블록체인]
expirationDate, status 필드 체크OpenDID 기반 로그인