문제

등록/인증이 필요한 웹 앱을 만들고 있으며 이메일 주소를 단독 사용자 ID로 사용하는 것을 고려하고 있습니다. 다음은 장단점으로 보는 것입니다 (응답으로 업데이트).

프로

  1. 등록 중에 필드를 작성하기에 하나가 적습니다 (이메일 주소, 비밀번호 및 비밀번호 확인). 나는 최소한의 등록의 열렬한 팬입니다.

  2. 이메일 주소는 기억하기 쉽습니다. (감사해요 미치, 제레미)

  3. 좋아하는 사용자 이름이 이미 찍은 것에 대해 걱정할 필요가 없습니다. 귀하는 귀하의 이메일 주소를 사용하는 유일한 사람입니다. (감사해요 tstamper)

단점

  1. 사용자는 로그인 할 때마다 입력해야합니다.

  2. 사용자가 여러 계정을 원한다면 어떻게해야합니까? 다른 이메일 주소가 필요합니다. (사용자가 여러 계정을 만들 수 있기를 원합니까?)

  3. 잠재적 인 공격자가 추측하기 쉽습니다 (대상의 이메일 주소를 알고 있다면 로그인 ID를 알고 있습니다). (감사해요 바실)

  4. 사용자는 이메일 계정에 사용하는 것과 동일한 비밀번호를 사용하려는 유혹을받을 수 있으며 이는 보안이 좋지 않습니다. (감사해요 도마)

  5. 이메일 주소를 자주 변경하는 경우 긴 hiatus 후 사이트에 가입했던 주소를 기억하기 어려울 수 있습니다. (감사해요 소프트웨어 원숭이)

  6. 해커는 등록 양식을 스팸하고 "이미 취한"응답을 사용하여 유효한 이메일 목록을 생성 할 수 있습니다. (감사해요 데이비드)

  7. 모든 사람에게 이메일 주소가있는 것은 아닙니다. (감사해요 니콜라스)

이메일을 ID로 사용하면 사용자가 주소를 변경할 때 변경할 수있는 메커니즘을 제공합니다. 이 경우 사용자는 공개 사이트에 콘텐츠를 게시하지 않으므로 이메일 주소를 보호하기 위해 별도의 사용자 이름이 필요하지 않지만 다른 사이트에 대해 고려해야 할 사항입니다).

또 다른 옵션은 OpenID (전체 다른 토론)를 구현하는 것입니다.

이것은 Google에서 작동하는 것처럼 보이지만 서비스는 엄격하게 통합되어 있습니다. 분석에서 무엇을 놓쳤습니까? 권장 사항이 있습니까? 공유 할 경험이 있습니까?

최종 편집

귀하의 답변에 감사드립니다. 이메일을 ID로 사용하기로 결정했지만 등록 후 로그인 목적으로 사용자 이름을 작성할 수 있습니다. 이를 통해 등록을 최대한 짧게 유지하면서 약간의 유연성이 있습니다. 또한 사용자가 이메일 주소를 변경할 때 문제를 방지합니다 (사용자 이름으로 로그인하여 업데이트 할 수 있음). 또한 등록 및 로그인 시스템 (주로 반복 시도 후 쿨 다운 기간)에서 이메일 주소의 무차별 대결을 방지하는 방법을 구현할 것입니다.

도움이 되었습니까?

해결책

나는 프로/사기 목록을 선호하지 않고 대신 혜택과 도전을 생각하려고 노력합니다.

도전:

일부 사용자는 ISP에서 이메일 주소를 사용하려는 유혹을받습니다. 이메일만으로 링크하는 것은 ISP를 변경하기 전에 가입 한 모든 웹 사이트에서 이메일을 업데이트하는 것을 잊어 버릴 수 있습니다.

대신에:

사용자가 사용자가 선택한 ID뿐만 아니라 여러 주소를 제공하고 사용자가 원하는 것을 결정하도록 허용해야합니다. 아마도 사용자가 OpenID 계정을 제공하도록 허용 할 수도 있습니다.

다른 팁

개인적으로, 나는 내 이메일 주소를 사용자 이름으로 사용하는 것을 선호합니다. 기억해야 할 것은 한 가지이며, 나는 이미 선호하는 이름이 이미 찍은 것에 대해 걱정할 필요가 없습니다.

내 2 센트!

나는 당신이 프로를 놓친 것 같아요 :

사용자는 이메일 주소를 기억할 것입니다. 그리고 이메일 주소가 독특하기 때문에 선호하는 사용자 이름이 이미 찍은 것에 대해 걱정할 필요가 없습니다.

단점

  1. 전자 메일 계정에 동일한 비밀번호를 사용하는 경우, 하나는 자동으로 손상되면 다른 하나를 손상시키는 것을 의미합니다.

웹 사이트 사용자로서 불필요한 사용자 이름을 암기하는 것이 싫다. 나는 독특한 손잡이 나 아무것도 사용하지 않으므로 아직 사용하지 않은 내 이름의 어떤 변형을 기억할 수 없습니다. 오히려 내 이메일 주소를 입력하고 싶습니다.

또한 나는 OpenID를 좋아합니다.

CON : 모든 사람에게 이메일 주소가있는 것은 아닙니다. 내부 응용 프로그램에 의해 데이터베이스에 액세스되는지 고려하십시오. 상점을 운영하는 경우 사람들 ~ 할 것이다 전화로 전화를 걸고 주문을 배치하고 이메일 주소 제공을 거부하십시오. 따라서 기본 사용자 ID로 전자 메일 주소를 갖는 동안 대체물이 시스템에 들어가도록해야합니다. (물론 이것은 상황에 따라 다릅니다.)

이것을 어려운 방법으로 배웠습니다.

고려할 수있는 한 가지 설정 : 사용자 이름과 이메일을 모두 갖추고 있습니다. 이메일은 로그인하는 데 사용되며 항상 비공개로 유지됩니다. 사용자 이름은 주석 게시와 같은 공개 상호 작용에서 사용자를 식별하는 데 사용됩니다. 사용자 로그인 자격 증명의 두 절반이 비공개로 유지되므로 약간 더 안전한 반면 로그인과 공개 식별에 사용자 이름을 사용하는 경우 로그인의 절반이 이미 알려져 있습니다.

대부분의 경우 등록을 최소화하는 것에 대해 확실히 동의하지만, 귀하가하고있는 일에 따라 사용자의 추가 보안과 균형을 맞추고 싶을 수도 있습니다. 4 개의 필드는 등록, (사용자 이름, 이메일, 암호, 비밀번호 확인)에 터무니 없으며, 특히 모험적인 느낌이 들면 암호 확인 필드를 삭제하여 3으로 줄이거나 비밀번호를 이메일로 보내면 3으로 줄일 수 있습니다. 그들은 나중에 바꿀 수 있습니다.

찬성

사람들은 자신의 신분증에 맞는 고유 한 이름을 만들어 내고 사이트에 등록하기 위해 아직 취해지지 않은 것을 싫어합니다. 그래서 사용자 ID가 다음과 같은 이유입니다. 이메일 주소 너무 받아 들여졌습니다.

전-: TSTAMPER1930, 실제로 내가 정말로 원했던 내 이름의 끝에서 1930 년을 기억하고 싶어하는

범죄자: 해커가 임의의 이메일 주소를 대량으로 등록 할 수있는 경우, 등록 실패에 따라 해당 주소 중 어느 것이 유효한 지 파악할 수 있습니다. 이것은 알려진 유효한 이메일 주소 목록을 구성하는 데 사용될 수있는 전술입니다.

지금은 그것에 대해 생각하지만, 그것은 별도의 사용자 이름이 있는지 여부에 관계없이 등록 프로세스의 일부로 이메일 주소를 묻는 웹 사이트에 영향을 미치는 문제입니다. 그러나 여전히 생각해야 할 것입니다.

범죄자: 이메일 주소를 변경하면 갑자기 모든 계정 이름이 유효하지 않습니다. 내 이름은 바뀌지 않지만 내 이메일은 종종 그렇습니다. 나는 때때로 몇 년 후에 사이트를 다시 방문했고, 갇혀있었습니다 ... 2 년 전에 내 이메일 주소는 무엇입니까 ???

어디에서나 사용되는 이메일 주소를 고수합니다. 실제로 대부분의 주요 웹 사이트는 사용하는 대부분의 주요 웹 사이트가 독특하므로 사용자가 다른 사람이 사용하지 않는 이름을 찾기 위해 고군분투하지 않도록 저장하고 사용자는 이메일 주소를 잊지 않습니다 (대부분의 경우). 적어도 :)), 이것은 사이트를 자주 방문하지 않으면 계속 잊을 수있는 사용자 이름과는 달리.

모든 주요 브라우저 (예 : FF .. 등)가 기본적으로 활성화 된 양식에 자동 완성을 제공하므로 이메일에 첫 번째 문자를 입력하고 드롭 다운 목록을 얻는 것에 대해 걱정해서는 안됩니다. (예 : 자동 완성 목록) 전체 이메일을 입력하기 위해 클릭하면 개인적으로 전자 메일 주소를 거의 입력하지 않습니다. 항상 첫 번째 문자를 입력 한 다음 Autocomplete 드롭 다운 목록에서 이메일을 선택합니다. 게다가, 사용자를 기억할 수있게되면 (기억력 상자와 영구 쿠키 사용) 걱정하지 않는 또 다른 이유가 될 것입니다.

앱에 대해 잘 모르지만 일반적으로 여러 계정을 가진 사용자는 대부분의 앱에서 바람직하지 않습니다.

하나의 사기는 이메일 주소 인 경우 로그인을 사람들이 추측 할 수 있고 무자비한 힘 공격을 시도 할 수 있다는 것입니다. 오늘날 대부분의 사이트에서 로그인이 공개적으로 표시되기 때문에 실제로는 큰 문제가 아닙니다.

가장 큰 프로는 로그인이 이런 식으로 기억하기가 더 쉽다는 것입니다.

좋은 설정은 사용자 이름과 이메일이 필요합니다. 사용자가 이메일 주소 또는 사용자 이름으로 로그인 할 수있는 것은 매우 사용자 친화적입니다. 추가 된 이점은 사용자가 이메일 주소를 변경할 수 있다는 것입니다. 또한 하나의 이메일에 대해 여러 계정을 허용합니다.

이메일의 CON 항목을 매번 입력하기에는 너무 길다. Stringscan Ruby Library를 구현했습니다.

require 'strscan'    
def signup!(user, &block)    
self.email = user[:email] unless user[:email].blank?    
str = StringScanner.new(self.email)    
str.scan_until(/@/)    
str.pre_match    
self.login = str.pre_match

등..

그런 다음 로그인 방법을 변경하여 이메일이나 로그인이 비밀번호 일치하도록 허용하십시오.

이것은 Google 또는 Mobileme처럼 작동합니다. 사용자는 이메일 사용자 이름 (예 : username@gmail.com 대신 username을 입력하도록 선택할 수 있습니다.)

사용자가 Facebook 또는 다른 소셜 네트워크를 사용하여 응용 프로그램에 로그인하도록 강요하지 않으면 (대부분의 사람들은 신경 쓰지 않는 것 같습니다), 참조 할 때 소셜 네트워크 이메일을 '사용자 ID'로 사용할 수 있습니다. 기타 테이블/문서 (MySQL, 몽고 등).

소셜 미디어 로그인 사용에 대한 보너스는 2 명의 사용자가 데이터베이스에 동일한 이메일이나 사용자 이름을 데이터베이스에 동일한 이메일이나 사용자 이름을 가질 수 있도록 허용하여 코드가 필요한 번거 로움을 저장하는 것을 포함하여 모든 보안이 상기 소셜 네트워크에 의해 관리되었다는 것을 알았습니다. 모든 것을 위해. 이것은 단지 나의 개인적인 취향 일뿐입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top