/login 페이지에 접속하여 “Email/username” 필드에 사용자 이름을 입력합니다. 위에서 언급한 초기 혼란 이후, "Email me a one-time login code"를 클릭합니다. 그러면 “Welcome back” 페이지로 이동하며, “Email” 필드에 사용자 이름이 미리 입력되어 있습니다(문제 1). 무심코 "Continue"를 클릭하면 세 개의 빨간색 오류 메시지가 한꺼번에 표시됩니다(문제 2):
Incorrect username, email or password
Fix this error to continue - Email - Please enter a valid email address
Please enter a valid email address
다음 “Continue” 버튼 옆의 “Login with your password instead” 텍스트는 Continue 버튼의 설명처럼 보이지만, 이는 큰 문제가 아닙니다.
그 후 "Continue"를 클릭하면 “Welcome back - Check your email” 화면으로 이동하지만, “Incorrect username, email or password” 오류가 여전히 남아 있습니다(문제 3).
이 화면에서는 추가 링크(“Resend code”, “Use a different email address”)가 “Continue” 아래에 위치하여, 이들이 별개의 요소임이 더 명확합니다.
개인적으로 인증이나 로그인 이메일에 클릭할 링크가 없는 것을 정말 싫어합니다. 이 기능을 사이트 설정에서 켜고 끌 수 있는 옵션을 추가해 주시면 좋겠습니다.
가입 첫 단계로 이메일과 코드를 입력하는 방식은 좋지만, 데이터 보호 약관에 동의하지 않은 상태에서 이메일을 입력하고(이메일을 보내는) 것이 적절한지 궁금합니다. 앞서 언급했듯이, 이는 관리자 승인 프로세스와도 맞아야 합니다(즉, 계정이 활성화되지 않을 예정이라면 "계정을 활성화하세요"라는 이메일을 보내지 않아야 한다는 뜻입니다).
이것은 두 가지 이유로 쉽게 충족시키기 어려운 요구사항입니다. 첫째, 이메일 주소 소유권을 확인하는 메커니즘은 제품 내에 하나만 있는 것이 가장 좋습니다. 두 가지 메커니즘을 동시에 사용하는 것은 최종 사용자, 관리자, 그리고 우리 자체의 지원 팀 모두에게 혼란을 줄 수 있습니다.
둘째의 이유는 보안과 관련이 있습니다. 링크는 잠재적인 공격자가 더 쉽게 탈취하거나 조작할 수 있습니다. 예를 들어, 누군가가 legitimate한 사이트에서 온 것처럼 보이는 이메일을 보내고, 그 안의 링크도 legitimate해 보이지만 실제로는 사용자를 다른 사이트나 계정으로 유도하는 것이 가능합니다. 링크는 소셜 엔지니어링 공격을 구현하기 쉽게 만듭니다. 반면 이메일 코드는 그렇지 않습니다.
일회성 이메일인 경우 괜찮지 않을까요? 어쨌든 링크를 보내는 경우와 코드를 보내는 경우 사이에 이것이 어떻게 다른지 잘 모르겠습니다.