Skip to content

feat: 이메일 여러 개 등록 #2

@injoonH

Description

@injoonH

요구 사항

  • 이메일 여러 개를 등록할 수 있다.

    • 등록한 이메일 중 primary email을 선택할 수 있다. (user는 primary email을 무조건 단 하나 가지고 있다.)
    • 이메일을 검증할 수 있다. (발송된 verification code 입력 등)
    • 이메일로 user를 특정할 수 있다.
    • 이메일은 auth_account 테이블과 relationship을 가지지 않는다.
  • 이메일 등록 시 아래 과정을 수행한다.

    function add_email_address() {
        if (email in user_email) {
            throw error("User already exists")
        }
        send confirm email
    }
    
    function confirm_email_registration() {
        create user_email
    }
    
  • Auth provider가 추가되는 경우를 고려해 로그인 시 아래 과정을 수행한다.

    // 같은 provider를 이용해 로그인한 기록 존재
    
    if ((provider, provider_account_id) in auth_account) {
        return existing user
    }
    
    // 같은 이메일, 다른 provider로 로그인한 기록 존재
    
    if (email in user_email) {
        create auth_account with existing user
        return existing user
    }
    
    // 첫 로그인
    
    create new user
    create auth_account with created user
    create user_email
    return created user
    

고려 사항

  • user 조회 시 primary email을 가져올 일이 많다면 비정규화?

목표가 아닌 것

  • 새로운 auth provider를 추가한다.
  • 두 user를 병합한다.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions