Next.js에서 WebAuthn 구현: 실습 가이드
Next.js에서 WebAuthn을 구현하기 위한 실습 가이드로, 실시간 코드 예제와 함께 제공됩니다.
Next.js에서 WebAuthn을 구현하기 위한 실습 가이드로, 실시간 코드 예제와 함께 제공됩니다.
우리의 WebAuthn 시리즈에 다시 오신 것을 환영합니다. 이전 기사에서는 WebAuthn의 기본과 101 가이드를 다루었습니다. 처음 오셨다면, 이러한 기초적인 콘텐츠를 확인하여 내용을 따라오세요.
오늘 우리는 이론을 실제로 적용하기 위해 준비할 것입니다. Next.js의 새로운 기능 "서버 액션"의 힘을 활용할 것입니다. 우리의 목표는 Next.js 애플리케이션에서 WebAuthn을 구현하고 WebAuthn을 위한 준비를 마치는 것입니다.
코딩의 바다에 뛰어들기 전에, 여정의 끝에서 기다리고 있는 것을 살짝 엿보겠습니다 - 완전히 기능하는 데모 웹사이트입니다. WebAuthn이 어떻게 작동하는지 보고, 여러분이 만들게 될 것들을 체험해보세요. 이 데모 웹사이트에서는 새로운 사용자 등록과 등록된 패스키로 로그인이 가능합니다.

그리고 지도가 있는 것을 선호하는 분들을 위해, 모든 코드가 공개된 GitHub 저장소에서 제공됩니다. 이 저장소는 완전한 구현 소스 코드를 제공하는 동반 가이드입니다.
이 흥미로운 모험을 시작할 준비가 되셨나요? 출발합시다!
시작하기 전에 준비된 것들이 있는지 확인해봅시다:
@simplewebauthn/browser, @simplewebauthn/server, @simplewebauthn/typescript-types를 설치하세요.도구와 준비물이 준비되었으므로, 이제 구축을 시작할 수 있습니다.
프로덕션과 로컬 개발 모두에서 KV 스토리지를 초기화하는 것은 쉽습니다. 이 가이드를 따라 프로젝트에 KV 저장소를 연결하고 환경 값을 가져옵니다: https://vercel.com/docs/storage/vercel-kv/quickstart
우리는 2개의 함수를 내보냈습니다:
getCurrentSession: Next.js 쿠키 헬퍼를 사용하여 현재 요청에 대한 세션을 만들고 값을 반환합니다.updateCurrentSession: 현재 세션에 데이터를 저장합니다.세션 구현과 유사하게, 간단한 사용자 데이터베이스를 구현해봅시다.
우리는 이메일로 사용자를 찾고, 이메일로 사용자 데이터를 업데이트하는 함수를 만들었습니다. 이것은 시연을 위한 것이며, 실제 제품에서는 사용자 데이터가 주로 데이터베이스에 보관됩니다.
진행하기 전에 등록과 인증 흐름의 다이어그램을 확인해봅시다:
보듯이, 2개의 함수가 필요합니다:
generateWebAuthnRegistrationOptionsverifyWebAuthnRegistration등록과 유사하게, 로그인도 2개의 함수가 필요합니다:
generateWebAuthnLoginOptionsverifyWebAuthnLogin여기 코드가 있습니다:
준비가 완료되었으니, 페이지를 구축해봅시다:
Next.js 애플리케이션에서 WebAuthn을 구현하는 복잡한 과정을 잘 따라오셨습니다. 마무리하면서, 프로덕션 환경에 배포할 때 고려해야 할 몇 가지 주요 사항을 논의하는 것이 중요합니다.
userId**나 **username**을 사용해야 할 수도 있습니다.이 교육적 모험에 함께 해줘서 감사합니다. 최소한의 예제에서도 WebAuthn을 통합하는 것은 간단한 작업이 아닙니다. 다른 옵션으로, Logto의 MFA에서 WebAuthn을 시도해보세요: