파이어폭스 패스키 자동완성만 안 뜰 때 확인할 세 가지

‘패스키로 로그인’ 버튼은 되는데, Firefox의 사용자 이름 칸에는 패스키 제안이 뜨지 않는다. 인증은 되는데 자동완성만 빠지는 이유는 어디에 있을까?

파이어폭스 패스키 자동완성만 안 뜰 때 확인할 세 가지
세 줄 요약
  • 패스키 인증 성공과 입력란의 자동완성 표시는 서로 다른 동작이다.
  • Firefox 158부터 autocomplete에 webauthn만 지정한 입력란도 조건부 UI를 표시할 수 있다.
  • 입력 속성과 조건부 요청이 맞아도 암호 관리자 설정에 따른 표시 문제를 따로 확인해야 한다.

패스키가 있어도 입력란의 표시 조건이 맞아야 한다

‘패스키로 로그인’ 버튼을 누르면 인증되는데 사용자 이름 입력란에는 패스키가 나오지 않는다면, 패스키 등록 실패부터 의심할 필요는 없다. 입력란의 자동완성 표시와 버튼으로 시작하는 인증 요청을 나눠 확인해야 한다.

Firefox 158의 변경은 이 중 입력란 쪽이다. 이전에는 username webauthn처럼 다른 자동완성 값이 함께 있어야 했지만, 이제 autocomplete="webauthn"만 지정해도 조건부 UI를 표시할 수 있다.

기존 사용자 이름 입력란의 속성을 지울 필요는 없다. 다음처럼 해당 필드의 목적을 남길 수 있다. webauthn은 공백으로 나눈 값 목록의 마지막에 둔다.

<label for="username">사용자 이름</label>
<input id="username" name="username"
       autocomplete="username webauthn">

이 HTML은 입력란에 어떤 제안을 보여 줄지 알려 주는 부분이다. 이것만 붙인다고 패스키가 생성되거나 사용자 인증이 끝나는 것은 아니다.

조건부 인증 요청은 바로 팝업을 띄우지 않는다

패스키 자동완성에는 입력 속성과 함께 navigator.credentials.get()의 mediation: "conditional" 요청이 필요하다. 이 요청은 사용자에게 곧바로 인증 창을 띄우기보다, 입력란에서 패스키를 선택할 때까지 기다린다.

따라서 개발자 도구에서 Promise가 대기 중이라는 이유만으로 실패라고 판단해서는 안 된다. 사용자가 비밀번호 경로를 고르면 조건부 요청은 해결되지 않은 채 남을 수 있다. 다른 WebAuthn 요청을 시작할 때는 기존 요청을 AbortController로 취소하는 흐름도 고려해야 한다.

브라우저가 해당 방식을 지원하는지는 isConditionalMediationAvailable()로 확인할 수 있다. 아래 코드는 지원 여부를 보는 예시다.

const supported = Boolean(
  window.PublicKeyCredential &&
  PublicKeyCredential.isConditionalMediationAvailable
) && await PublicKeyCredential.isConditionalMediationAvailable();

console.log({ conditionalMediation: supported });

true는 기능을 사용할 수 있다는 답이다. 이 사이트에 쓸 패스키가 사용자 기기에 있는지, 특정 암호 관리자가 제안을 표시할지는 별도 문제다.

암호 저장을 끈 설정이 패스키 표시에도 영향을 줄 수 있다

Mozilla에는 ‘Ask to save passwords’를 끄면 패스키 옵션이 나타나지 않는 문제가 등록돼 있다. 2026년 10월 26일 기준 상태는 NEW다. 담당자의 재현 기록에는 Firefox 156의 Windows 환경과 macOS 사례가 포함된다.

관련 신고에서는 올바른 입력 속성과 지원 여부 확인에도 자동완성이 안 나오고, 별도 버튼의 인증은 작동했다고 보고했다. 이 신고는 DUPLICATE로 닫혔다. 같은 문제의 기존 신고에 연결했다는 뜻이며, 수정 완료를 뜻하지 않는다.

개발자는 재현할 때 브라우저 버전, 암호 저장 설정, 암호 관리자 확장 프로그램, 패스키 저장 위치를 함께 기록하는 편이 좋다. 입력 속성을 바꾸는 것과 사용자 환경을 바꾸는 것을 한 번에 수행하면 어떤 조건이 표시를 바꿨는지 알기 어려워진다. Firefox 158의 단독 토큰 지원을 이 설정 문제의 해결 공지로 읽어서는 안 된다.

자동완성 외에 사용자가 누를 로그인 버튼을 남긴다

Mozilla의 이슈 분석은 암호 저장 설정이 꺼져 있어도 사이트가 명시적으로 인증 요청을 시작해 저장된 자격 증명을 사용할 수 있다고 설명한다. 개발자에게는 자동완성만 기다리게 하기보다 ‘패스키로 로그인’ 버튼을 함께 제공할 근거가 된다.

버튼으로 시작하든 자동완성으로 시작하든, 브라우저가 자격 증명을 반환한 뒤에는 서버 검증이 필요하다. 서버는 발급한 challenge, 요청 출처, RP ID, 서명과 필요한 사용자 확인 조건을 검사한 뒤 로그인 세션을 만든다.

확인 순서는 입력 속성, 조건부 요청, 사용자 환경, 명시적 버튼 경로다. ‘패스키가 안 된다’는 하나의 증상을 이 네 단계로 나누면, 정상인 인증 기능을 다시 만들기 전에 표시가 막힌 지점을 좁힐 수 있다.