이메일 코드를 활용한 간편한 계정 가입

Discourse 커뮤니티는 이제 마법 링크 대신 이메일로 전송된 짧은 코드를 사용하여 로그인할 수 있도록 할 수 있습니다. 이는 많은 다른 SaaS 플랫폼에서 익숙하게 볼 수 있는 비밀번호 없는 로그인 플로우를 제공하며, 기존 2단계 인증 설정과 함께 작동합니다.

이 주제에서는 주요 변경 사항을 검토하고, 오늘부터 이 기능을 사용하기 시작하는 방법을 공유하겠습니다.

:microscope: 변경된 사항

이 기능이 활성화되면 회원들은 더 간단한 플로우를 경험하게 됩니다:

:

  1. 이메일 주소를 입력하고 계속 버튼을 클릭합니다.
  2. 6자리 코드가 수신함에 도착합니다. 코드를 붙여넣기(또는 입력)하면 마지막 자리가 채워지는 순간 양식이 자동으로 제출됩니다.
  3. 2단계 인증(TOTP, 백업 코드, 또는 보안 키)이 활성화되어 있다면, 다음으로 표준 2FA 단계가 나타납니다.

알아두면 좋은 몇 가지 세부 사항: 코드는 10분간 유효하며, 5회 실패 후 만료되고, 한 번만 사용 가능합니다.

:gear: 커뮤니티에서 1회용 로그인 코드 활성화하기

현재 이 변경 사항은 실험적 기능으로 간주됩니다! 보다 널리 배포하기 전에, 개선 사항을 도울 수 있도록 여러분의 피드백을 환영합니다.

이 기능을 활성화하려면 관리자 영역의 예정된 변경 사항 페이지(/admin/config/upcoming-changes)로 이동하여 코드를 통한 로컬 로그인 활성화 항목을 찾으세요. 활성화 대상… 필드를 업데이트하여 사이트에 이 새로운 디자인을 적용합니다:

:warning: 활성화하기 전에, 이 기능은 enable_local_loginsenable_local_logins_via_email이 모두 true여야만 켤 수 있으므로 이 두 설정이 true인지 확인하세요. DiscourseConnect(enable_discourse_connect)를 사용 중인 경우 이 기능을 활성화할 수 없습니다.

변경 사항이 활성화되면 코드 로그인 경로가 자동으로 나타납니다.

:game_die: 신규 계정을 위한 랜덤 사용자 이름

인식 가능한 사용자 이름이 포함된 이메일 없이 가입하는 신규 회원에게는 이제 user1과 같은 일반적인 플레이스홀더 대신 "QuietFalcon42"와 같은 친근하게 생성된 이름이 부여됩니다. 계정 준비 단계에서 제안된 이름이 미리 입력되며, 새로운 이름을 생성하기 위한 주사위 버튼이 포함됩니다.

제안 이름 뒤에 있는 단어 목록은 random_username_adjectivesrandom_username_nouns 사이트 설정을 통해 구성할 수 있으므로, 커뮤니티는 자신의 톤이나 언어에 맞게 조정할 수 있습니다. 이전의 번호 기반 폴백을 유지하려면 enable_random_usernames를 비활성화하여 옵트아웃할 수 있습니다.

:mega: 여러분의 생각은?

이제 여러분의 차례입니다: 이 새로운 기능에 대해 어떻게 생각하는지 듣고 싶습니다. 무엇이 좋고 나쁜지, 무엇이 잘 작동하고 무엇이 개선될 수 있는지 알려주세요.

12개의 좋아요

방금 내 사이트에서 직접 테스트해 보았습니다. 다른 사람들은 어떻게 생각하시는지 모르겠지만, 비밀번호 관리자 사용자인 제 입장에서는 이건 꽤 큰 퇴보라고 느껴집니다…

이 새로운 플로우(흐름)는 제 비밀번호 관리자가 저에게 권해온 “이메일 생성, 사용자 이름 입력, 비밀번호 생성, 저장” 전략을 제거하고, 모든 단계 전에 이메일을 먼저 입력하도록 강제합니다. 이메일 인증 코드 방식 자체에는 문제가 없습니다(오히려, 특히 코드 내용이 이메일 제목에 포함된다면 거의 선호하는 편입니다) 하지만, 다른 계정 데이터 입력란을 제거하는 것에 대해서는 강하게 반대합니다. 만약 기술적 배경이 전혀 없는 사용자라면, 이런 식의 정보가 없는 박스에 이메일을 입력하는 것이 일반적인 디자인이 아니기 때문에 자신의 이메일을 함부로 입력하지 않을 것이라 생각합니다. 이것이 영구적인 변경 사항이 되기 전에, 해당 입력란을 다시 복원해 주셨으면 좋겠습니다.

2개의 좋아요

이메일 코드, 또는 "매직 링크"라고도 불리는 방식은 괜찮지만, 사용자를 패스키 사용으로 유도하면 경험이 훨씬, 훨씬 좋아집니다.

이메일 코드의 가장 큰 문제 중 하나는 앱 내 브라우저(예: Gmail의 앱 내 브라우저)에서 사용자가 원하는 대로 동작하지 않는다는 점입니다.

매직 링크와 관련해 사람들이 가장 자주 겪는 문제는, 일반적인 브라우저에서 사이트에 로그인했다고 생각하지만 실제로는 앱 내 브라우저를 통해 로그인된 상태라는 것입니다. 예를 들어, 사용자가 이메일로 로그인 링크를 받은 후 Gmail 앱을 열어 “404 Media에 로그인” 버튼을 클릭하면 전화기가 웹페이지를 로드합니다. 하지만 이는 네이티브 Safari 브라우저가 아니라 Gmail의 웹 브라우저를 통해 웹사이트를 로드하는 것입니다.

패스키는 이 문제를 해결합니다.

먼저, 매직 링크를 사용하는 웹사이트는 현재 매직 링크 작동 방식에 대해 불만을 제기한 고객들에게 패스키를 선택적(옵트인) 기능으로 제공할 수 있습니다. 문제가 발생하지 않도록 일종의 소프트 론칭으로, 해당 기능을 100% 옵트인으로 설정할 수 있습니다.

그 후, 웹사이트 운영자가 패스키가 매직 링크 관련 사용자 경험 문제를 실제로 해결하는지 확신하게 되면, 로그인 후 90일마다 또는 패스키의 크로스 디바이스 로그인 기능을 사용하여 로그인할 때 사용자에게 패스키 추가를 제안할 수 있습니다. Apple 기기를 사용하는 사용자를 위한 이러한 제안의 프레이밍은 다음과 같이 할 수 있습니다: 다음에 이메일을 확인할 필요가 없도록 하려면, Face ID나 Touch ID로 빠르고 안전하게 로그인할 수 있도록 패스키를 설정해 보세요.

사용자를 패스키 사용으로 유도하는 것은 사용자를 비밀번호 관리자 사용으로 유도하는 것과 같습니다. 왜냐하면 패스키는 기본적으로 비밀번호 관리자를 요구하는 비밀번호일 뿐이기 때문입니다.

2개의 좋아요

안녕하세요 :waving_hand:

이 접근 방식에 매우 공감합니다! 다만, 가입 절차가 완료되기 전에 표시 이름(display name)을 변경할 수 없다는 점이 조금 신경에 거슬립니다. 가입 과정 중에 이름을 변경할 수 있는 옵션을 추가할 수 있다면 좋겠다고 생각합니다.

저의 커뮤니티에서는 Prioritize username in UX 사이트 설정을 비활성화했습니다. 이로 인해 UI 전반에서 전체 이름/표시 이름이 우선적으로 표시됩니다. 이런 상황에서 사용자가 즉시 이름을 커스터마이즈할 수 있는 옵션이 없다면, "user21"과 같이 자동 할당된 이름은 프론트엔드에서 꽤 보기 좋지 않게 보입니다.

감사합니다!

6개의 좋아요

이 새로운 플로우에서는 매직 링크를 보내지 않습니다. 코드만 전송합니다. 사용자는 같은 페이지에 머물러 있으며, 이메일에서 코드를 복사하여 가입 폼에 붙여넣습니다. 따라서 이 새로운 접근 방식은 인앱 브라우저에서 문제를 해결하는 데 도움이 됩니다(이 변경 사항의 주요 장점 중 하나입니다).

이는 가입 시 비밀번호 단계에서 다음으로 수행하고 싶은 일입니다. 앱과 웹사이트가 패스키 지원을 확대하고 있으며, 다양한 맥락에서 패스키 유도 메시지를 자주 볼 수 있으므로 Discourse에도 추가하는 것이 타당합니다. (비밀번호에서 패스키로의 전환에서 이러한 지원의 임계값에 도달하는 것은 매우 도움이 됩니다.)

3개의 좋아요

이 기능에 대해 제가 유일하게 문제라고 생각하는 점은 가입 페이지에서 이름과 사용자 이름 필드가 제거된다는 것입니다. 이는 의도된 것인가요? 가입 직후 사용자가 설정을 뒤져서 'user63’이 아닌 사용자 이름을 설정하도록 강요하고 싶지 않습니다.

3개의 좋아요

이메일 인증 코드를 통한 가입 방식은 제가 항상 원했던 변화입니다!

1개의 좋아요

이 변경 사항이 없으면 "비밀번호를 잊었습니다"와 “이메일로 보내기” 링크의 크기가 동일했습니다. 이제 후자의 크기가 더 커졌습니다. 의도적인 것인가요?

4개의 좋아요

다음 링크에서 수정되었습니다:

4개의 좋아요

피드백 감사합니다. 네, 더 빠르게 계정을 생성할 수 있도록 의도적으로 그렇게 설계했습니다.

알겠습니다. 이 다음 단계를 더 간단하게 만들거나 다른 방법으로 초기 사용자 이름을 설정하는 방안을 검토하고 있습니다.

1개의 좋아요

동의합니다. 그런 일반적인 사용자 이름은 사용자 상호작용을 더 혼란스럽게 만듭니다. 기본적으로 사용자는 3일 안에 이름을 변경할 수 있지만, 그 기간이 지난 후에야 문제를 알아차리는 경우가 많을 것으로 예상됩니다. 따라서 스태프가 이름을 변경해 주는 것이 필요합니다.

예를 들어, Offering blank username suggestions rather than ‘UserN’ at signup 의 수정 덕분에 메타 사이트에서는 그런 일이 방지되었습니다. 해당 수정이 병합되기 전 마지막 userXXX 계정은 1월 7일에 생성되었습니다. 그 이후로 이 기능이 활성화될 때까지 새로운 userXXX 계정은 생성되지 않았으며, 이후에는 12개의 새로운 계정이 생성되었습니다.

4개의 좋아요

이 기능은 매우 유용합니다. 점점 더 많은 플랫폼들이 특정 기기(해당 인증 도구가 설치된 기기)를 손에 들고 있지 않아도 MFA를 통한 안전한 로그인을 제공하기 위해 ‘이메일로 받는 일회용 코드’ 기능을 활용하고 있습니다.

5개의 좋아요

계정 생성 과정에서 이 단계를 보지 못하나요?

이것은 좀 이상한 인용입니다. DomMcD가 저를 인용한 것처럼 보이지만, 사실은 그렇지 않습니다.

저는 해당 단계를 테스트해 본 적이 없습니다. 저는 Meta에서 신규 사용자와 관련된 제 관찰 사항에 대해 언급하고 있을 뿐입니다. 가입 시 특정 필드를 보느냐의 여부는 중요하지 않습니다. 다른 사람들이 그 필드를 어떻게 다루는지에 대해 제가 어떻게 대응해야 하는지가 중요하니까요.

또한 이름이 어떻게 처리되는지도 궁금합니다. 모든 사용자가 생성된 사용자명을 사용하는 것은 아닌 것 같지만, 이름이 userXXX로 설정된 사용자가 더 많다는 것을 알아차립니다.

사용자명을 변경해도 여전히 그런 이름이 부여되는 것 같습니다. 이로 인해 같은 숫자가 반복적으로 사용되다가, 해당 사용자명이 이미 사용 중이면 다음 숫자로 다시 시작되는 현상이 발생한다고 합니다.

예를 들어, 0102100988082, mohamedasarudeen, user603 모두 이름이 user603입니다.

그들이 이름을 변경할 수 있다는 것은 알고 있지만, 다시 말하지만, 제가 그들과 상호작용하는 경험은 제가 바꿀 수 있는 것이 아닙니다.

2개의 좋아요

모두가 보고해 주셔서 감사합니다. 수정이 곧 병합될 예정입니다:

2개의 좋아요

업데이트

@keegan님의 최신 작업 덕분에, 이제 이 단계에서 추천 이름을 미리 채워 넣는 사용자 이름 생성 기능이 추가되었습니다:

UX 관련 요청 하나만 드리겠습니다. 가능하시다면요. 바로 이 부분입니다:

제 기기들은 여기서 비밀번호가 필요하다고 확신하는 것 같지만, 실제로는 이메일을 묻는 것이 맞습니다. 그러면 제 스마트폰 등이 다른 인증 정보 대신 이메일 주소를 제안하도록 알 수 있을 것입니다.

1개의 좋아요

이 가입 플로우를 초대 랜딩 페이지에도 구현할 수 있을까요? 아마도 이 알파 단계에서는 범위를 벗어난 내용일 테지만, 기능이 안정화되면 해당 구현이 매우 유용할 것입니다. 제 커뮤니티 멤버들의 진입 장벽을 확실히 낮춰 주니 정말 감사합니다!

1개의 좋아요

우연히도, 그 부분에 대해 여기에서 진행 중인 작업이 있습니다:

1개의 좋아요