매직 링크의 함정
매직 링크 로그인은 비밀번호 없이 이메일로 로그인할 수 있게 해주는 편리한 방식입니다.
하지만 보안상 주의할 점으로는, 링크가 짧은 시간 내에 만료되고, 한 번만 사용 가능하며, 충분한 난수(entropy) 를 가진 비밀 코드가 포함되어야 하며, 데이터베이스에는 코드의 해시값만 저장해야 합니다.
추가로, 링크를 클릭할 때 자동 로그인 대신 명시적 클릭을 요구해야 하는데, 이는 이메일 클라이언트나 브라우저가 미리보기나 프리페치로 링크를 미리 요청하는 문제를 방지하기 위함입니다.
또한, 로그인은 원래 브라우저 탭에서 처리되어야 하며, 매직 링크 탭은 코드 검증만 수행하고 원래 탭이 주기적으로 상태를 확인해 로그인하는 방식이 권장됩니다.
이 방식은 이메일 접근이 불가능한 다른 기기에서도 로그인할 수 있게 하며, 6자리 코드 입력 방식은 낮은 보안 요구 환경에 적합하다는 점도 참고할 만합니다.