PHP 8.5+와 Slim Framework를 조합해 Twilio Verify SMS OTP 기반 패스워드리스 인증을 구현하는 튜토리얼이다. Composer를 활용한 빠른 프로젝트 스캐폴딩부터 OTP 발송·검증 전체 흐름을 다룬다.
핵심 포인트- Slim Framework + Twig 템플릿 + PHP dotenv + Slim Session의 조합으로 경량 웹앱을 구성한다.
- Twilio PHP SDK가 Verify API 호출을 추상화하며, Composer로 모든 의존성을 관리한다.
- sendOtpCode()와 verifyOtpCode() 두 함수가 각각 OTP 발송과 코드 검증 로직을 담당한다.
- 세션에 전화번호를 저장해 폼 제출 사이의 사용자 컨텍스트를 유지한다.
- Twilio Slim Base Project 템플릿을 Composer로 클론해 초기 설정 비용을 최소화한다.
상세 정리- 배경: 비밀번호 없는 인증은 유출 리스크를 줄이고 사용자 경험을 개선하는 현대적 접근이다.
- 프로젝트 스캐폴딩: Twilio Slim Base Project 템플릿을 Composer로 초기화해 기본 구조를 갖춘다.
- Twilio Console에서 Verify 서비스를 생성하고(SMS 채널 + Fraud Guard 활성화) Service SID를 획득한다.
- 앱 초기화: .env 로드, Twilio REST Client 설정, 세션/Twig 미들웨어를 순서대로 구성한다.
- sendOtpCode(): 전화번호 유효성 확인 → 세션 저장 → Twilio Verify API로 SMS 발송 → 검증 폼으로 리다이렉트.
- verifyOtpCode(): 세션에서 전화번호 조회 → 사용자 코드 수신 → Twilio API 검증 호출 → 성공/실패 확인 페이지 표시.
- Twig 템플릿 3개: 전화번호 입력(tel 최적화), OTP 입력(숫자 제한), 검증 결과(조건부 스타일링).
- composer serve로 localhost:8080에서 실행 및 SMS 수신→코드 입력 흐름을 테스트한다.
왜 읽나PHP 환경에서 패스워드리스 인증을 빠르게 구현하려는 개발자에게 Slim 기반 엔드투엔드 구현 가이드로 유용하다.